google-cloud-functions - 从 Cloud Tasks 触发 HTTP Cloud Function 时出现 PERMISSION_DENIED 403 错误
问题描述
我正在尝试使用 Cloud Tasks 触发 Cloud Functions教程,但是当我尝试运行创建的任务时出现错误:
Status code: 7 (PERMISSION_DENIED)
Reason for retrying: PERMISSION_DENIED(7): HTTP status code 403
我创建了一个具有该Cloud Functions Invoker
角色的新服务帐户。并修改了我的代码,以便使用此服务帐户创建任务:
const task = {
httpRequest: {
httpMethod: protos.google.cloud.tasks.v2.HttpMethod.POST,
url,
oidcToken: {
serviceAccountEmail: 'cloud-tasks-client@my-actual-project.iam.gserviceaccount.com',
},
该任务是从云功能创建的。
我还修改了目标 Cloud Function 访问控制,以便可以使用allAuthenticatedUsers
角色访问它Cloud Functions Invoker
。我可以使用云功能控制台测试触发功能而不会出现任何错误。
我错过了什么?有任何想法吗?
解决方案
我刚刚想通了。我用ingress-settings=internal-only
. 认为 Cloud Tasks 将被视为内部服务。我不得不将其更改为默认值all
,然后它就起作用了。internal-and-gclb
也没有工作。
推荐阅读
- python - 导入 geopandas jupyter lab
- arrays - 使用 JQ 对流元素进行分组并对字段求和
- acumatica - 在员工时间活动中多选员工
- flask - 重置断开的连接:使用 corenlp 时的 localhost
- flutter - 如何在 Flutter 中制作可滚动的多行输入文本?
- docker - 与“cc”链接失败:退出代码
- amazon-web-services - 重用 iam_instance_profile
- python - 'DataFrame' 对象没有属性 'string_column'
- database - 如果数据库服务器更新到新版本,重写程序代码?
- html - 如何将 CSS 代码添加到网站构建器中的预构建主题