我正在尝试调用 Google 云函数,该函数是由云调度程序触发的 Http。
但每当我尝试运行云调度程序时,它总是显示权限被拒绝错误
httpRequest: {
status: 403
}
insertId: "14igacagbanzk3b"
jsonPayload: {
@type: "type.googleapis.com/google.cloud.scheduler.logging.AttemptFinished"
jobName: "projects/***********/locations/europe-west1/jobs/twilio-cloud-scheduler"
status: "PERMISSION_DENIED"
targetType: "HTTP"
url: "https://europe-west1-********.cloudfunctions.net/function-2"
}
logName: "projects/*******/logs/cloudscheduler.googleapis.com%2Fexecutions"
receiveTimestamp: "2020-09-20T15:11:13.240092790Z"
resource: {
labels: {
job_id: "***********"
location: "europe-west1"
project_id: "**********"
}
type: "cloud_scheduler_job"
}
severity: "ERROR"
timestamp: "2020-09-20T15:11:13.240092790Z"
}
我尝试过的解决方案 -
- 按照一些用户的建议,尝试将 Google 云功能与 App 引擎放在同一区域。
- 授予访问 Google 提供的云调度程序 saservice-****@gcp-sa-cloudscheduler.iamaccount.gserviceaccount.com所有者角色和 Cloud Functions 管理员角色
- 我的云功能的入口设置为允许所有流量。
我的云调度程序仅在我运行以下命令时才起作用
gcloud 函数 add-iam-policy-binding 云函数 --member="allUsers" --role="roles/cloudfunctions.invoker"
在云调度页面,您需要添加一个服务帐号来调用私有云功能。在 Cloud Scheduler 设置中,您必须
- 点击
SHOW MORE
在底部
- Select
Add OIDC token
in the Auth Header
section
- 在调度程序的服务帐户电子邮件中添加服务帐户电子邮件
- 使用与 Cloud Functions 相同的基本 URL 填写受众(部署时提供的 URL)
调度程序的服务帐户电子邮件必须被授予角色 cloudfunctions.invoker
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)