Я разрабатываю приложение локально (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's & Services
раздел в 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.- An Ключ API - это еще одна возможность, но она будет зависеть от вызываемой конечной точки. Помните, что вам нужно делать отдельные запросы, вы можете попробовать добавить ключевой параметр в свои запросы REST, например:
GET https://www.googleapis.com/compute/v1/projects/{project}/zones/{zone}/instances?key=AAfdf43FE3..fdDgg
3.- Я боюсь, что это невозможно для существующих учетных записей пользователей, таких как ваш адрес электронной почты. Вместо этого вы можете создать новый идентификатор клиента и сгенерировать его файл json.
Я лично рекомендую использовать учетные записи служб, если вы собираетесь запрашивать только использование ресурсов.
Надеюсь, что приведенная выше информация поможет!