Golang и gcloud API: как получить токен авторизации - PullRequest
0 голосов
/ 09 сентября 2018

Поскольку в Google AutoML нет клиента golang, я должен использовать http-клиент AutoML. Для этого требуется авторизационный токен от Google, полученный при выполнении следующей команды cli:

gcloud auth application-default print-access-token

В настоящее время я выполняю аутентификацию на сервере Golang с помощью json-файла с учетными данными, который также имеет доступ к AutoML (пример использования)

storageClient, err := storage.NewClient(ctx, option.WithCredentialsFile(gcloudCredsJSONPath))

Мой вопрос: как мне получить токен авторизации от клиента Google Golang, если у меня есть файл учетных данных JSON? Это вообще возможно?

Спасибо за любую помощь!

1 Ответ

0 голосов
/ 09 сентября 2018

Вы можете использовать токены API только с некоторыми API Google Cloud. Google Cloud не поощряет использование токенов, как вы можете прочитать в этой статье:

https://cloud.google.com/docs/authentication/

Если ваша производственная среда также является Google Cloud, вам, возможно, вообще не понадобится использовать какой-либо файл JSON. Google Cloud имеет концепцию DefaultCredentials, которую он внедряет в ваши сервисы через среду. Вы можете упростить свой код до:

storageClient, err := storage.NewClient(ctx)

Также рекомендуется использовать «ServiceAccount», чтобы учетные данные, которые использует ваше приложение, могли быть привязаны к нему. Вы можете прочитать больше здесь:

https://cloud.google.com/docs/authentication/getting-started

...