我有两个Google Cloud Platform项目(分段和制作)。我希望我的应用程序部署在Google Compute Engine实例上,以自动检测项目ID。这样做的方法是什么?
答案 0 :(得分:7)
您可以通过编程方式查询metadata server以获取各种信息,包括项目ID。
对于项目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
答案 1 :(得分:2)
您可以使用以下命令直接在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()
答案 2 :(得分:0)
在我的环境中,我有:
curl: (6) Could not resolve host: metadata.google.internal
以下对我有用:
PROJECTID=`gcloud projects list | awk 'FNR>1 {print$1}'`
返回项目详细信息,然后解析项目ID。