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.