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
即可查看输出,然后使用awk
、jq
或类似工具获取您需要的内容。
【讨论】:
以上是关于Gcloud命令行获取默认project_id的主要内容,如果未能解决你的问题,请参考以下文章
让 fish shell 与 gcloud 命令行工具一起工作?