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.

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.