google-cloud-platform - 如何以编程方式获取谷歌云项目编号?
问题描述
我想在我的项目中使用 Google Secret Manager。要访问已保存的机密,必须提供包含 Google 项目编号的机密名称。方便地以随机方式获取此数字以形成秘密名称,而不是将其保存在环境变量中。我为我的项目使用 node.js 运行时。我知道有一个库 google-auth-library 允许获取项目 ID。是否有可能以某种方式获得项目编号?
解决方案
project_id
您可以通过或访问机密project_number
。以下都是指向相同机密的有效资源 ID:
projects/my-project/secrets/my-secret
projects/1234567890/secrets/my-secret
您可以获取元数据,包括project_id
和project_number
来自元数据服务。有很多默认值。您要查找的是numeric-project-id
和project-id
。
这是一个curl
用于访问元数据服务的示例。您将在您的工作负载中运行它,通常在初始启动期间:
curl "https://metadata.google.internal/computeMetadata/v1/project/project-id" \
--header "Metadata-Flavor: Google"
注意:Metadata-Flavor: Google
标题是必需的。
要从 Node 访问这些值,您可以构建自己的 http 客户端。或者,您可以使用googleapis/gcp-metadata包:
const gcpMetadata = require('gcp-metadata');
async function projectID() {
const id = await gcpMetadata.project('project-id');
return id
}