升级到GAE3时替换google.appengine.api导入模块

时间:2019-04-08 08:50:50

标签: python python-3.x google-app-engine google-cloud-platform

我们正在从GAE 2(标准)过渡到3。 在GAE2上,我们使用了:

from google.appengine.api import modules

CountryClient.COUNTRY_REALTIME_HOST = modules.get_hostname('api-country')

考虑到google.appengine.api不可用,我如何在GAE3上做到这一点?

1 个答案:

答案 0 :(得分:1)

在Python 3运行时中,没有直接等同于google.appengine.api.modules库的App Engine Standard。

但是,作为一种解决方法,您可以结合使用App Engine Admin APIdefault runtime environment variables

here所述:

  

Python 3不支持Modules API。您可以使用   环境变量和App Engine Admin API的组合   获取有关并修改应用程序运行状态的信息   服务:

当您使用模块名称(或服务名称,现在称为模块,现在称为服务)来调用modules.get_hostname时,可以使用apps.services.get API调用来检索版本处理所有流量,然后进行apps.services.versions.instances.list API调用以检索处理所有流量的实例名称。然后,您可以像这样建立Hosname:

<Instance-ID>.<version.ID>.<service-ID>.<App-ID>.appspot.com

(或者,如果您使用的是自定义域,则可以用它替换appspot.com域。)