从 Google Compute Engine 机器检索项目 ID?
Retrieve project id from Google Compute Engine machine?
我有两个 Google 云平台项目(暂存和生产)。我希望我的应用程序部署在 Google Compute Engine 实例上以自动检测项目 ID。有什么方法可以做到?
您可以通过编程方式查询 metadata server 以获取各种信息,包括项目 ID。
项目编号:
$ curl "http://metadata.google.internal/computeMetadata/v1/project/project-id" -H "Metadata-Flavor: Google"
这将 return 您的项目 ID,例如:my-gcp-project
或者如果您需要数字项目 ID:
$ curl "http://metadata.google.internal/computeMetadata/v1/project/numeric-project-id" -H "Metadata-Flavor: Google"
这将 return 数字项目 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}'`
其中 returns 项目详细信息,然后针对项目 ID 进行解析。
我有两个 Google 云平台项目(暂存和生产)。我希望我的应用程序部署在 Google Compute Engine 实例上以自动检测项目 ID。有什么方法可以做到?
您可以通过编程方式查询 metadata server 以获取各种信息,包括项目 ID。
项目编号:
$ curl "http://metadata.google.internal/computeMetadata/v1/project/project-id" -H "Metadata-Flavor: Google"
这将 return 您的项目 ID,例如:my-gcp-project
或者如果您需要数字项目 ID:
$ curl "http://metadata.google.internal/computeMetadata/v1/project/numeric-project-id" -H "Metadata-Flavor: Google"
这将 return 数字项目 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}'`
其中 returns 项目详细信息,然后针对项目 ID 进行解析。