Utilizzo dell'API Modules

L'API Modules fornisce funzioni che restituiscono informazioni sull'ambiente operativo attuale (modulo, versione e istanza).

L'API Modules ha anche funzioni che recuperano l'indirizzo di un modulo, una versione o un'istanza. Ciò consente a un'applicazione di inviare richieste da un'istanza all'altra, sia negli ambienti di sviluppo che di produzione.

Il seguente esempio di codice mostra come ottenere il nome del modulo e l'ID istanza per una richiesta:

import com.google.appengine.api.modules.ModulesService;
import com.google.appengine.api.modules.ModulesServiceFactory;

ModulesService modulesApi = ModulesServiceFactory.getModulesService();

// Get the service name handling the current request.
String currentModuleName = modulesApi.getCurrentModule();
// Get the instance handling the current request.
int currentInstance = modulesApi.getCurrentInstance();

L'ID istanza di un modulo a scalabilità automatica verrà restituito come valore codificato in base64 univoco, ad esempio e4b565394caa.

Puoi comunicare tra i moduli nella stessa app recuperando il nome host del modulo di destinazione:

Il seguente esempio di codice mostra come ottenere il nome del modulo e l'ID istanza per una richiesta:

import com.google.appengine.api.modules.ModulesService;
import com.google.appengine.api.modules.ModulesServiceFactory;

import java.net.MalformedURLException;
import java.net.URL;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

// ...

ModulesService modulesApi = ModulesServiceFactory.getModulesService();

// ...
    try {
        URL url = new URL("http://" +
            modulesApi.getVersionHostname("my-backend-service","v1") +
            "/fetch-stats");
        BufferedReader reader = new BufferedReader(
            new InputStreamReader(url.openStream()));
        String line;

        while ((line = reader.readLine()) != null) {
            // Do something...
        }
        reader.close();

    } catch (MalformedURLException e) {
        // ...
    } catch (IOException e) {
        // ...
    }

Puoi anche utilizzare il servizio Recupero URL.