Utilizzo dell'API Modules

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

L'API Modules dispone anche di funzioni che recuperano l'indirizzo di un modulo, di una versione o di un'istanza. In questo modo un'applicazione può 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 con scalabilità automatica verrà restituito come valore codificato in base64 univoco, ad esempio e4b565394caa.

Puoi comunicare tra i moduli della 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 Ricerca URL.