Как установить базовую аутентификацию для Google Cloud Scheduler

Я хочу запланировать HTTP-запрос с использованием облачного планировщика. Мой сервис, развернутый на k8s, использует базовую аутентификацию. Как добавить такую ​​авторизацию в работу? Требуется ли указывать эту авторизацию внутри сервисного аккаунта? Я да- тогда как? Должен ли я использовать токен OIDC, поскольку OAuth кажется неподходящим? Большое спасибо за любой ответ от вас. В любом случае желаю вам хорошего дня :)

Создание приборной панели для анализа данных на GCP - часть I
Создание приборной панели для анализа данных на GCP - часть I
Недавно я столкнулся с интересной бизнес-задачей - визуализацией сбоев в цепочке поставок лекарств, которую могут просматривать врачи и...
2
0
1 098
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Basic Auth — это просто login:password base64, закодированный в заголовке запроса. Но Cloud Scheduler не предлагает заполнить его в пользовательском интерфейсе.

Однако, если вы используете gcloud CLI, вы можете сделать это

gcloud scheduler jobs create http --headers=Authorization = "Basic <login:password base64 encoded> ...

Вы можете посмотреть другие параметры. У вас есть политики повторных попыток, которые также очень хороши и недоступны в пользовательском интерфейсе.

Я обнаружил, что запутался между curl и форматом, который требуется CLI gcloud; в заголовке есть небольшая разница, которую легко не заметить: двоеточие (:) после ключевого слова «Авторизация» должно быть символом равенства (=) для заголовков glcoud. Например:

  • завиток: curl -H "Authorization: Basic base-64-encoded-string"
  • gcloud CLI: gcloud scheduler jobs create http AJobIdYouProvide --project = "your-project-id" --schedule = "* * * * *" --description = "Job description" --time-zone = "Europe/London" --headers = "Authorization=Basic base-64-econded-string" --http-method=GET --uri = "https://example.com

Он есть в документации (https://cloud.google.com/sdk/gcloud/reference/scheduler/jobs/create/http#--headers), но его легко пропустить, и без него ваше запланированное задание будет только сообщать назад как неудавшийся с кодом неавторизованного ответа.

Другие вопросы по теме