Google compute engine 从Google计算引擎机器检索项目id?

Google compute engine 从Google计算引擎机器检索项目id?,google-compute-engine,google-cloud-platform,Google Compute Engine,Google Cloud Platform,我有两个谷歌云平台项目(登台和生产)。我想让部署在谷歌计算引擎实例上的应用程序自动检测项目id。该怎么做 您可以通过编程方式查询各种信息,包括项目id 对于项目id: $ curl "http://metadata.google.internal/computeMetadata/v1/project/project-id" -H "Metadata-Flavor: Google" $ curl "http://metadata.google.internal/computeMetadata/v

我有两个谷歌云平台项目(登台和生产)。我想让部署在谷歌计算引擎实例上的应用程序自动检测项目id。该怎么做

您可以通过编程方式查询各种信息,包括项目id

对于项目id:

$ curl "http://metadata.google.internal/computeMetadata/v1/project/project-id" -H "Metadata-Flavor: Google"
$ curl "http://metadata.google.internal/computeMetadata/v1/project/numeric-project-id" -H "Metadata-Flavor: Google"
这将返回您的项目id,例如:
mygcp项目

或者,如果需要数字项目id:

$ curl "http://metadata.google.internal/computeMetadata/v1/project/project-id" -H "Metadata-Flavor: Google"
$ 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。

metadata.google.internal在google cloud之外不可访问。问题的上下文是一个已经在谷歌云内运行的应用程序。@I.Tyger部署到GCP时-是的,当然。不记得它在本地是否有效。最有可能的是,它没有。它在本地不起作用。对于本地测试,我可能需要在本地工作的方法。