使用 Modules API

Modules API 提供可返回有关当前操作环境信息(模块、版本和实例)的函数。

Modules API 还提供可用于检索模块、版本或实例的地址的函数。这样一来,应用就可以在开发和生产环境中将请求从一个实例发送到另一个实例。

您必须从 SDK 导入 google.appengine.api.modules 模块。

from google.appengine.api import modules

以下代码示例演示了如何获取请求的模块名称和实例 ID:

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

自动扩缩模块的实例 ID 将作为唯一的 Base64 编码值返回,例如 e4b565394caa

您可以在同一个应用的不同模块之间通信,只需提取目标模块的主机名即可:

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

您还可以使用网址提取服务。