Использование gcloud для вывода списка всех активных ресурсов в рамках данного проекта GCP - PullRequest
1 голос
/ 25 сентября 2019

Можно ли перечислить через gcloud cli все активные ресурсы в рамках данного проекта GCP?

1 Ответ

2 голосов
/ 25 сентября 2019

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

Однако при таком подходе возникают различные проблемы:

  • Для некоторых перечислений может потребоваться более подробная информация (например, регионы | зоны)
  • Вы должны быть исчерпывающими (в нем не будет указано, что вы не запрашиваете)
  • это становится вложенным | быстро запутывается
  • Некоторые службы запрашивают, если они не включены (например, Compute Engine)

NB

  • Вы можете подать --filter=... к каждой из вышеперечисленных команд
  • Вы можете заключить весь цикл в один, который перечисляет gcloud auth list учетных записей
...