Gcloud命令行获取默认project_id

Posted

技术标签:

【中文标题】Gcloud命令行获取默认project_id【英文标题】:Gcloud command line get default project_id 【发布时间】:2016-06-06 13:56:59 【问题描述】:

我正在寻找一个单行来获取默认项目 id

gcloud config list core/project 给我

Your active configuration is: [default]
[core]
project = myproject_id

虽然我只想拥有 myproject_id。目标是在脚本中使用结果。

【问题讨论】:

【参考方案1】:

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

gcloud info |tr -d '[]' | awk '/project:/ print $2'

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

【讨论】:

【参考方案2】:

最简单的方法是在 gcloud 上使用 --format 标志。

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

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

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

【讨论】:

请注意,这会将一些额外信息打印到标准错误,但实际值会打印到标准输出。我能够使用export PROJECT_ID=$(gcloud config list --format 'value(core.project)') 将项目 ID 捕获到环境变量中 它不会为我打印任何东西到 stderr - 也许这已经改变了?谷歌云 SDK 版本 227【参考方案3】:

感谢上面 Tim Swast 的评论,我能够使用 export PROJECT_ID=$(gcloud config get-value project) 获取项目 ID。

运行 gcloud config get-value project 在屏幕上打印以下内容:

Your active configuration is: [default]

my-project-id

您也可以运行 gcloud config get-value project 2> /dev/null 以仅打印项目 ID 并禁止其他警告/错误。

【讨论】:

您也可以运行gcloud config get-value project 2> /dev/null 仅打印项目 ID 并禁止其他警告/错误。更新了答案。 这也是我找到的最好的方法,但是它很慢,因为gcloud 只是启动很慢。每次调用 2-3 秒,因此(例如)太慢而无法放入 shell 提示功能。有没有更快的方法?【参考方案4】:

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

echo $DEVSHELL_PROJECT_ID

如下图所示。

【讨论】:

【参考方案5】:

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

gcloud config get-value project

【讨论】:

【参考方案6】:

gcloud config list --format='text(core.project)'

来源:gcloud Reference

【讨论】:

【参考方案7】:

上面回答了获取project_id的直接简单方法。

如果您想从gcloud info 获取此信息,这里有一个方法。

gcloud info --format=flattened | awk '/config.project/ print $2'

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

只需运行gcloud info --format=flattened|json 即可查看输出,然后使用awkjq 或类似工具获取您需要的内容。

【讨论】:

以上是关于Gcloud命令行获取默认project_id的主要内容,如果未能解决你的问题,请参考以下文章

让 fish shell 与 gcloud 命令行工具一起工作?

模仿 AWS CLI / gcloud 命令行参数

gcloud:用户无权访问服务帐户“默认”

错误:(gcloud.sql.connect)HTTPError 400:传入请求包含无效数据

从命令行获取默认打印机名称?

为 gcloud 构建提交指定 Dockerfile