Я разрабатываю приложение локально (python), я хочу перечислить детали всех проектов и их экземпляров.
Для этого я создал файл application_default_credentials.json
, выполнив команду gcloud auth application-default login
. С помощью этого файла я могу перечислить все свои проекты и их экземпляры. Но
application_default_credentials.json
? Если ДА, не могли бы вы показать мне один пример того же? application_default_credentials.json
имеет client_id, client_secret и refresh_token. Можно ли сгенерировать эти ключи в разделе API и службы
в GCP? (У меня 3 проекта, и каждый проект имеет 3 экземпляра, Я просто хотел собрать подробную информацию обо всех проектах и их экземплярах локально)
Просто хочу отметить, что невозможно перечислить все ресурсы из всех ваших проектов. В настоящее время только Консоль может делать это в разделе Ресурсы на Домашней странице. Однако вы можете перечислить услуги по отдельности, а затем присоединиться к ним. Вы можете сделать это с помощью python и вызвать запросов REST , а затем суммировать все свои результаты. Например, вы можете вызвать метод instance.list для вывода списка экземпляров или disks.list для вывода списка ваших дисков. Просто имейте в виду, что эти запросы сгруппированы по зонам.
Ответы на ваши вопросы:
1.- Для учетных записей пользователей вы можете проверить OAuth 2.0 Playground. Для служебных учетных записей это можно сделать с помощью консоли, gcloud и REST. Полные примеры см. по этой ссылке . С помощью REST вы можете использовать запрос POST:
POST https://iam.googleapis.com/v1/projects/PROJECT-ID/serviceAccounts/SA-NAME@PROJECT-ID.iam.gserviceaccount.com/keys
2.- API-ключ - еще одна возможность, но она будет зависеть от вызываемой конечной точки. Помните, что вам нужно делать индивидуальные запросы, вы можете попробовать добавить ключевой параметр в ваши запросы REST, например:
GET https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/instances?key=AAfdf43FE3..fdDgg
3. - Боюсь, это невозможно для существующих учетных записей пользователей, таких как ваш адрес электронной почты. Вместо этого вы можете создать новый идентификатор клиента и сгенерировать его файл json.
Я лично рекомендую использовать учетные записи служб, если вы собираетесь запрашивать только использование ресурсов.
Надеюсь, что приведенная выше информация поможет!