GCP: Как получить токен доступа к движку вычислений? - PullRequest
0 голосов
/ 28 февраля 2019

Я хочу получить токен доступа вычислительного движка.Используя этот токен доступа, я хочу вызвать REST API.Далее Rest api будет вызываться с использованием HTTP-библиотеки python 2.0.(не все библиотеки Google доступны, поэтому REST API рассматриваются)

Не могли бы вы предоставить способ получения токена доступа вычислительных движков?Следующий код может быть отправной точкой, однако, как получить токен доступа отсюда и далее, не известно:

from google.auth import compute_engine
credentials = compute_engine.Credentials() 

Пожалуйста, предложите другие способы ... Заранее спасибо.

1 Ответ

0 голосов
/ 28 февраля 2019

Каждый экземпляр Compute Engine сохраняет свои метаданные на сервере метаданных.Вы можете запросить этот сервер метаданных программно из экземпляра для получения информации об экземпляре, такой как информация учетной записи службы.Вы можете запросить токен доступа на сервере метаданных в Python следующим образом:

import requests

METADATA_URL = 'http://metadata.google.internal/computeMetadata/v1/'
METADATA_HEADERS = {'Metadata-Flavor': 'Google'}
SERVICE_ACCOUNT = 'default'


def get_access_token():
    url = '{}instance/service-accounts/{}/token'.format(
        METADATA_URL, SERVICE_ACCOUNT)

    # Request an access token from the metadata server.
    r = requests.get(url, headers=METADATA_HEADERS)
    r.raise_for_status()

    # Extract the access token from the response.
    access_token = r.json()['access_token']

    return access_token

Обратите внимание, что в этом примере предполагается, что ваш экземпляр использует учетную запись службы Compute Engine по умолчанию .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...