【发布时间】:2018-05-10 02:31:33
【问题描述】:
我有两个 Google Cloud Platform 项目(暂存和生产)。我希望我的应用程序部署在 Google Compute Engine 实例上以自动检测项目 ID。这样做的方法是什么?
【问题讨论】:
标签: google-compute-engine google-cloud-platform
我有两个 Google Cloud Platform 项目(暂存和生产)。我希望我的应用程序部署在 Google Compute Engine 实例上以自动检测项目 ID。这样做的方法是什么?
【问题讨论】:
标签: google-compute-engine google-cloud-platform
您可以通过编程方式查询metadata server 以获取各种信息,包括项目ID。
项目编号:
$ curl "http://metadata.google.internal/computeMetadata/v1/project/project-id" -H "Metadata-Flavor: Google"
这将返回您的项目 ID,例如:my-gcp-project
或者如果您需要数字项目 ID:
$ curl "http://metadata.google.internal/computeMetadata/v1/project/numeric-project-id" -H "Metadata-Flavor: Google"
这将返回数字项目ID,例如:0123456789
【讨论】:
您可以直接在 shell 脚本中确定项目 ID:
PROJECTID=$(curl -s "http://metadata.google.internal/computeMetadata/v1/project/project-id" -H "Metadata-Flavor: Google")
或者使用您的语言的元数据库来获取所需的数据。
我可以通过以下方式在 Golang 中获取项目 ID:
import "cloud.google.com/go/compute/metadata"
...
var ProjectId, _ = metadata.ProjectID()
【讨论】:
在我的环境中,我有:
curl: (6) Could not resolve host: metadata.google.internal
以下内容对我有用:
PROJECTID=`gcloud projects list | awk 'FNR>1 {print$1}'`
返回项目详细信息,然后解析项目ID。
【讨论】: