Usa la API de módulos

La API de Modules proporciona funciones que muestran información acerca del entorno operativo (módulo, versión, instancia).

La API de Modules también tiene funciones que recuperan la dirección de un módulo, una versión o una instancia. Esto permite que una aplicación envíe solicitudes de una instancia a otra, tanto en el entorno de desarrollo y como en el de producción.

En el código de muestra a continuación, se enseña cómo obtener el nombre del módulo y el ID de una instancia para una solicitud:

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();

El ID de instancia de un módulo con ajuste de escala automático se mostrará como un valor único codificado en formato base64, p. ej., e4b565394caa.

Puedes comunicarte entre módulos de la misma aplicación si recuperas el nombre de host del módulo de destino:

El ejemplo de código que aparece a continuación muestra cómo obtener el nombre del módulo y el ID de instancia para una solicitud:

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) {
        // ...
    }

También puedes usar el servicio de recuperación de URL.