Как сделать обнаружение службы для Google App Engine? Как получить сервисный URL?

Я хочу получить URL-адреса служб для конкретного проекта, как я могу это сделать?
Мне нужны URL, как.appspot.com
Я попробовал API App Engine Admin, но он может предоставить только названия сервисов.

3 ответа

Вы можете получить URL версий сервисов App Engine через вызовы API, в 3 этапа:

1) аутентифицируйтесь и получите токен доступа к API администратора App Engine:

gcloud auth application-default print-access-token

2) с помощью токена доступа перечислите все службы в App Engine и получите их идентификатор версии (во вложенном поле "размещения") и идентификатор службы:

curl -H "Authorization: Bearer [MY_ACCESS_TOKEN]" https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/services

3) с идентификатором версии и идентификатором услуги, получить полные данные о версии:

curl -H "Authorization: Bearer [MY_ACCESS_TOKEN]" https://appengine.googleapis.com/v1/apps/[MY_PROJECT_ID]/services/[SERVICE_ID]/versions/[VERSION_ID]/?view=FULL

Поле versionUrl доставляет URL-адрес приложения для этой конкретной версии в следующей форме:

Оттуда вы можете создать свой собственный сервис обнаружения.

URL службы, отличной от значения по умолчанию, следует этому шаблону:

service-dot-projectID.appspot.com

Так, например, если название вашей службы helloworld и ваш идентификатор проекта myprojectid тогда URL будет helloworld-dot-myprojectid.appspot.com

Если вы вручную создаете URL-адреса для сервисов в рамках одного проекта, вам может быть проще настроить некоторые правила отправки.

https://cloud.google.com/appengine/docs/standard/python3/reference/dispatch-yaml

В файле dispatch.yaml можно переопределить правила маршрутизации. Вы можете использовать dispatch.yaml для отправки входящих запросов в определенную службу (ранее известную как модули) на основе пути или имени хоста в URL-адресе.

В зависимости от ваших потребностей вы можете создать свой URL-адрес из app_identity.get_default_version_hostname()не беспокоясь о базовой службе, поскольку правила отправки будут направляться к службе по URL-адресу.

Другие вопросы по тегам