Замена модулей импорта google.appengine.api при обновлении до GAE3 - PullRequest
1 голос
/ 08 апреля 2019

Мы переходим от GAE 2 (стандарт) к 3. На GAE2 мы использовали:

from google.appengine.api import modules

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

Как я могу это сделать на GAE3, учитывая, что google.appengine.api недоступен?

1 Ответ

1 голос
/ 09 апреля 2019

Прямого эквивалента библиотек google.appengine.api.modules в среде выполнения Python 3 для App Engine Standard не существует.

Однако в качестве обходного пути вы можете использовать комбинацию App Engine Admin API и переменных среды выполнения по умолчанию .

Как указано здесь :

API модулей не поддерживается в Python 3. Вы можете использовать сочетание переменных среды и API администратора App Engine для получить информацию о вашем приложении и изменить его услуги:

Поскольку вы вызываете modules.get_hostname с именем модуля (или именем службы, поскольку теперь модули обычно называются службами), вы можете использовать вызов API apps.services.get , чтобы узнать, какие это версия, обрабатывающая весь трафик, а затем вызов API-интерфейса apps.services.versions.instances.list для получения имени экземпляра, обрабатывающего весь трафик. Тогда вы можете построить имя хоста так:

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

(или, если вы используете собственный домен, вы можете заменить им домен appspot.com.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...