使用Google Cloud Platform SDK CLI列出给定项目下所有活动资源

33

是否可以通过Google Cloud Platform(GCP)SDK CLI (gcloud)列出给定GCP项目下的所有活动资源?

3个回答

29

1
随着时间的推移,运行gcloud alpha resources list会出现错误:ERROR: (gcloud.alpha) Invalid choice: 'resources'。然而,gcloud beta asset search-all-resources可以正常工作。 - Jari Turkia
4
"gcloud alpha resources list"已被弃用。 (翻译: "gcloud alpha resources list" is deprecated.) - Circy

6

IIUC(如果我理解正确),没有一个通用类型来表示“在项目中存在的东西”,所以您需要具体列举所有感兴趣的类型。

此外,一些资源(例如密钥)是由项目拥有的服务帐户拥有。

for PROJECT in $(\
  gcloud projects list \
  --format="value(projectId)")
do
  echo "Project: ${PROJECT}"
  echo "Services"
  gcloud services list --project=${PROJECT}
  echo "Kubernetes Clusters"
  gcloud container clusters list --project=${PROJECT}
  echo "Compute Engine instances"
  gcloud compute instances list --project=${PROJECT}
  echo "Service Accounts"
  for ACCOUNT in $(\
    gcloud iam service-accounts list \
    --project=${PROJECT} \
    --format="value(email)")
  do
    echo "Service Account keys: ${ACCOUNT}"
    gcloud iam service-accounts keys list --iam-account=${ACCOUNT} --project=${PROJECT}
  done
done

但是这种方法存在一些挑战:

  • 某些枚举可能需要更多的细节(例如区域|区域)
  • 你需要详尽地列出所有选项(如果你不要求它,就不会显示它们)
  • 它会很快变得嵌套|混乱
  • 某些服务在未启用时会提示(例如计算引擎)

NB

  • 你可以对上述每个命令应用--filter=...
  • 你可以将整个循环包装成一个循环,枚举gcloud auth list账户。

0
如果您想按状态列出资源,则可以使用--filter=选项,这将是活动状态资源。
用例:- 如果您想列出所有处于待删除状态的项目,则将使用:
gcloud  projects  list --filter='lifecycleState:DELETE_REQUESTED'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接