GCP: Как получить токен доступа к движку вычислений?
Я хочу получить токен доступа к вычислительному движку. Используя этот токен доступа, я хочу вызвать REST API. Далее Rest api будет вызываться с использованием HTTP-библиотеки python 2.0. (не все библиотеки Google доступны, поэтому REST API рассматриваются)
Не могли бы вы предоставить способ получения токена доступа для вычислительных движков? Следующий код может быть отправной точкой, однако, как получить токен доступа с этого момента не известно:
from google.auth import compute_engine
credentials = compute_engine.Credentials()
Пожалуйста, предложите разные способы... Спасибо заранее.
1 ответ
Каждый экземпляр 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 по умолчанию.