Como usar a API Modules

A API Modules oferece funções que retornam informações sobre o ambiente operacional atual (módulo, versão e instância).

A API Modules também tem funções que recuperam o endereço de um módulo, uma versão ou uma instância. Isso permite que um aplicativo envie solicitações de uma instância para outra, tanto nos ambientes de desenvolvimento quanto de produção.

Veja na seguinte amostra de código como saber o nome do módulo e o código da instância para uma solicitação:

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

O código da instância de um módulo de escalonamento automático será retornado como um valor codificado base64 exclusivo, por exemplo e4b565394caa.

É possível estabelecer comunicação entre os módulos no mesmo aplicativo, buscando o nome do host do módulo de destino:

Veja na seguinte amostra de código como saber o nome do módulo e o código da instância para uma solicitação:

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

Também é possível usar o serviço de busca de URL.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Ambiente padrão do App Engine para Java 8