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 nos ambientes de desenvolvimento e de produção.

Você precisa importar o módulo google.appengine.api.modules do SDK.

from google.appengine.api import modules

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:

module = modules.get_current_module_name()
instance_id = modules.get_current_instance_id()
self.response.write(
    'module_id={}&instance_id={}'.format(module, instance_id))

O ID da instância de um módulo com escalonamento automático será retornado como um valor exclusivo com codificação base64, por exemplo e4b565394caa.

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

backend_hostname = modules.get_hostname(module='my-backend')
url = "http://{}/".format(backend_hostname)
try:
    result = urllib2.urlopen(url).read()
    self.response.write('Got response {}'.format(result))
except urllib2.URLError:
    pass

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