Google Cloud Как получить авторизацию? - PullRequest
1 голос
/ 29 февраля 2020

Мне нужно получить список экземпляров моего облачного проекта Google. Итак, я попробовал это:

requests.get('https://compute.googleapis.com/compute/v1/projects/clouddeployment-265711/zones/europe-west3-a/instances)

Как получить авторизацию в python?

Ответы [ 2 ]

0 голосов
/ 02 марта 2020

Вот полная документация об аутентификации между серверами , которая также включает примеры кодов для каждого поддерживаемого метода.

В этом коде GCP Github вы можете увидеть несколько способов аутентификации, которые вы можете выбрать в зависимости от вашего варианта использования.

Например, с этим примером кода вы можете использовать служебную учетную запись JSON ключ для аутентификации:

# [START auth_api_explicit]
def explicit(project):
    from google.oauth2 import service_account
    import googleapiclient.discovery

    # Construct service account credentials using the service account key
    # file.
    credentials = service_account.Credentials.from_service_account_file(
        'service_account.json')

    # Explicitly pass the credentials to the client library.
    storage_client = googleapiclient.discovery.build(
        'storage', 'v1', credentials=credentials)

    # Make an authenticated API request
    buckets = storage_client.buckets().list(project=project).execute()
    print(buckets)
# [END auth_api_explicit]

ОБНОВЛЕНИЕ: Если вам нужно просто получить токен Bearer и сохранить его в переменной python, чтобы сделать простой запрос GET:

import os

your_key = os.system('gcloud auth print-access-token')

, чтобы your_key теперь имел токен Bearer, который необходимо включить в заголовке вашего запроса

В противном случае, пожалуйста, прочитайте эту документацию , которая объясняет, как пройти аутентификацию в качестве конечного пользователя.

0 голосов
/ 02 марта 2020

Я рекомендую вам использовать клиентскую библиотеку API Google.

Мало того, что библиотеки Google (есть одна для почти каждой службы) предоставляют Python SDK для Compute Engine, но также реализует аутентификацию и ведение журнала et c.

https://cloud.google.com/compute/docs/tutorials/python-guide

Если вам нужно напрямую вызвать API, вам необходимо предоставить токен на предъявителя:

TOKEN="$(gcloud auth print-access-token)"
curl --header "Authorization: Bearer ${TOKEN}" https://...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...