Usar a API Modules

A API Modules fornece funções que devolvem informações sobre o ambiente de funcionamento atual (módulo, versão e instância).

A API Modules também tem funções que obtêm o endereço de um módulo, uma versão ou uma instância. Isto permite que uma aplicação envie pedidos de uma instância para outra, tanto nos ambientes de desenvolvimento como de produção.

Tem de importar o módulo google.appengine.api.modules do SDK.

from google.appengine.api import modules

O seguinte exemplo de código mostra como obter o nome do módulo e o ID da instância para um pedido:

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 dimensionado automaticamente é devolvido como um valor único codificado em base64, por exemplo, e4b565394caa.

Pode comunicar entre módulos na mesma app obtendo o nome do anfitrião 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 pode usar o serviço URL Fetch.