如何为 Google Cloud Scheduler 设置基本身份验证

How to set Basic Auth for Google Cloud Scheduler

我想使用云调度程序来安排 HTTP 请求。我在 k8s 上部署的服务使用的是基本身份验证。如何将这种授权添加到工作中?是否需要在服务帐户中指定此授权?我是-那怎么办?我是否应该使用 OIDC 令牌,因为 OAuth 似乎不合适? 非常感谢您的任何答复。祝你有个美好的一天:)

Basic Auth 只是在请求的 header 中编码的 login:password base64。但是,Cloud Scheduler 不建议在 UI.

上填充它

但是,如果您使用 gcloud CLI,您可以这样做

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

你可以看看其他参数。您有重试政策,这些政策也非常好,并且在 UI.

上不可用

我发现自己对 curl 和 gcloud CLI 要求的格式感到困惑; header 中有一个很容易被忽略的细微差别:'Authorization' 关键字后的冒号 (:) 需要是 glcoud [=26] 的等号 (=) =]秒。例如:

  • 卷曲: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) 中,但很容易被遗漏,如果没有它,您的计划作业将只会报告失败并显示未经授权的响应代码。