如何为 Google App Engine 进行服务发现?如何获取服务网址



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

您可以通过

API 调用获取 App Engine 服务版本的网址,只需 3 个步骤:

1( 验证并获取 App Engine 管理 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:

  • 默认服务:

    https://[VERSION_ID]-dot-[PROJECT_ID].appspot.com

  • 其他服务:

    https://[SERVICE_ID]-dot-[VERSION_ID]-dot-[PROJECT_ID].appspot.com

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

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

service-dot-projectID.appspot.com

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

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

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

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

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

相关内容

  • 没有找到相关文章

最新更新