You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用gcloud/Cloud Shell列出组织中启用指定服务的GCP项目

列出组织内启用特定API的GCP项目(单行命令方案)

为什么gcloud projects list无法直接实现

gcloud projects list返回的项目元数据仅包含项目ID、名称、状态、创建时间等基础信息,不包含已启用的服务/API状态,因此无法通过该命令的--filter选项直接筛选出启用特定API的项目。

单行命令解决方案

筛选启用BigQuery API的项目

执行以下单行命令,即可输出组织内所有启用了BigQuery API的项目ID:

gcloud projects list --format="value(projectId)" | xargs -I {} sh -c 'gcloud services list --enabled --project {} --filter="config.name:bigquery.googleapis.com" --format="value(config.name)" > /dev/null && echo {}'

命令拆解

  • gcloud projects list --format="value(projectId)":仅输出当前账号有权限访问的所有项目ID
  • xargs -I {}:将每个项目ID作为参数传递给后续子命令
  • sh -c '...':检查目标项目是否启用了bigquery.googleapis.com服务,若启用则输出项目ID

适配任意API

只需将命令中的bigquery.googleapis.com替换为目标API的服务名称即可,例如筛选启用Compute Engine API的项目:

gcloud projects list --format="value(projectId)" | xargs -I {} sh -c 'gcloud services list --enabled --project {} --filter="config.name:compute.googleapis.com" --format="value(config.name)" > /dev/null && echo {}'

限制为特定组织的项目

如果只需要筛选特定组织下的项目,在gcloud projects list中添加组织过滤条件(替换ORG_ID为你的组织ID):

gcloud projects list --filter="parent.type=organization parent.id=ORG_ID" --format="value(projectId)" | xargs -I {} sh -c 'gcloud services list --enabled --project {} --filter="config.name:bigquery.googleapis.com" --format="value(config.name)" > /dev/null && echo {}'

优化执行速度(可选)

如果项目数量较多,可安装parallel工具实现并行检查(Cloud Shell中需先安装):

sudo apt install -y parallel
gcloud projects list --format="value(projectId)" | parallel 'gcloud services list --enabled --project {} --filter="config.name:bigquery.googleapis.com" --format="value(config.name)" > /dev/null && echo {}'

内容的提问来源于stack exchange,提问作者Ian Hyzy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 12:03:14