繁体   English   中英

无法验证来自 Google Cloud Scheduler 的 HTTP function 调用

[英]Unable to authenticate HTTP function call from Google Cloud Scheduler

我创建了一个 HTTP Google Cloud Function 不允许未经身份验证的请求。

我在项目中创建了一个具有一个角色的服务帐户:Cloud Functions Invoker。

此服务帐户被列为我的 http 云 function 的主体,并显示具有该角色: 功能权限 我创建了一个 Cloud Scheduler 作业来运行这个 function。

在作业中,我已指定我希望它获取 OIDC 令牌以验证对 http function 的请求:

Cloud Scheduler 作业设置

每当我触发作业时,它都会失败并显示一条消息,指示请求未经身份验证:

错误信息

我尝试过的事情:

  1. 重新创建 function
  2. 重新创建作业
  3. 使用不同的用户(主要服务帐户用户 - 那个也不起作用)
  4. 从调度程序作业中执行 POST 而不是 GET(我之前已经成功地为经过身份验证的 http 函数创建了预定作业,但这是我第一次完成 GET - 真的只是抓住了稻草)

我错过了什么? 知道为什么它会返回“未经身份验证”的消息吗?

我今天重温了这个。 我的 IAP protected HTTP function 期望将查询字符串参数传递给它。 云平台 Web UI 在创建 Scheduled Job 时自动将受众设置为相同的 URL(包括参数)。 我想谷歌知道他们在做什么,所以我最初就这样离开了。

出于绝望,我尝试从观众中删除这个参数,这使得身份验证工作正常。

所以,我把听众从

https://<myProject>.cloudfunctions.net/myFunction?p=abc

https://<myProject>.cloudfunctions.net/myFunction

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM