如何进行Google App Engine的服务发现?如何获得服务URL?

时间:2019-02-07 12:14:40

标签: google-app-engine google-cloud-platform service-discovery gae-module

我想获取特定项目的服务URL,该怎么做?
我需要像.appspot.com这样的URL
我尝试了App Engine Admin api,但它只能提供服务名称。

3 个答案:

答案 0 :(得分:0)

默认服务以外的服务的URL遵循以下模式:

service-dot-projectID.appspot.com

例如,如果您的服务名称为helloworld,而项目ID为myprojectid,则URL为helloworld-dot-myprojectid.appspot.com

答案 1 :(得分:0)

您可以通过3个步骤通过API调用获取App Engine服务版本的网址:

1)进行身份验证并获得对App Engine Admin API的访问令牌:

gcloud auth application-default print-access-token

2)和访问令牌,列出App Engine中的所有服务,并获取其版本ID(在嵌套字段“分配”中)和服务ID:

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

3)带有版本ID和服务ID,获取有关该版本的完整数据:

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:

从那里,您可以构建自己的服务发现。

答案 2 :(得分:0)

如果您在同一项目中手动构建服务的 url,您可能会发现设置一些调度规则更容易。

https://scratchaddons.com/

<块引用>

dispatch.yaml 允许您覆盖路由规则。您可以使用 dispatch.yaml 根据 URL 中的路径或主机名将传入请求发送到特定服务(以前称为模块)。

根据您的需要,您可以根据 app_identity.get_default_version_hostname() 构建您的 url,而无需担心底层服务,因为调度规则将通过 url 路径路由到服务。