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