使用 Cloud SDK CLI 一行代码获取默认 GCP 项目 ID

Get the Default GCP Project ID with a Cloud SDK CLI One-Liner

我正在寻找一个 gcloud 单行程序来获取默认项目 ID ($GCP_PROJECT_ID)。

list 命令给我:

gcloud config list core/project

#=>

[core]
project = $GCP_PROJECT_ID

Your active configuration is: [default]

虽然我只想要以下输出:

gcloud . . .

#=>

$GCP_PROJECT_ID

不完全是您指定的 gcloud 命令,但会 return 您当前配置的项目:

gcloud info |tr -d '[]' | awk '/project:/ {print }'

也适用于帐户、区域和区域。

最简单的方法是使用 --format 标志和 gcloud:

gcloud config list --format 'value(core.project)' 2>/dev/null

--format 标志适用于所有命令,让您可以完全控制打印的内容及其格式。

您可以查看此帮助页面以获取完整信息:

gcloud topic formats

感谢上面 Tim Swast 的评论,我能够使用:

export PROJECT_ID=$(gcloud config get-value project)

获取项目 ID。 运行 get-value 命令打印以下内容:

gcloud config get-value project


#=>

Your active configuration is: [default]

$PROJECT_ID

您还可以运行:

gcloud config get-value project 2> /dev/null

仅打印 $PROJECT_ID 并抑制其他 warnings/errors。

从 Cloud Shell 或任何安装了 Cloud SDK 的机器,我们可以使用:

echo $DEVSHELL_PROJECT_ID

并且如下图所示。

我有一个关于如何设置环境变量 $DEVSHELL_PROJECT_ID 的问题;以下是步骤:

  • 如果URL有变量project并设置为某个项目id,那么环境变量$DEVSHELL_PROJECT_ID通常会被设置为项目id。
  • 如果 URL 中没有设置变量 project,我们可以从组合框中选择项目(除了标题 Google Cloud Platform),这将设置变量 project 在 URL 中。我们可能需要重启CloudShell或者刷新整个网页来设置环境变量$DEVSHELL_PROJECT_ID.
  • 否则,如果没有设置环境变量$DEVSHELL_PROJECT_ID,我们可以通过下面显示的命令设置它,我们将PROJECT_ID替换为实际的项目id。
gcloud config set project PROJECT_ID
  • 如下图所示。

使用 Google Cloud SDK 266.0.0 您可以使用以下命令:

gcloud config get-value project

上面回答了获取默认 $PROJECT_ID 的直接简单方法。

如果您想从 info 命令中获取 $PROJECT_ID,可以使用以下方法:

gcloud info --format=flattened | awk '/config.project/ {print }'

或:

gcloud info --format=json | jq '.config.project' | tr -d '"'

就运行:

gcloud info --format={flattened|json}

查看输出,然后使用 awkjq 或类似工具获取您需要的内容。