Golang и gcloud API: как получить токен авторизации
Поскольку в 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 ответ
Вы можете использовать токены 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