google-cloud-platform - 从云调度程序调用谷歌云函数时获取权限被拒绝错误

标签 google-cloud-platform google-cloud-functions google-cloud-scheduler

我正在尝试调用由云调度程序触发的 Http 谷歌云功能。
但是每当我尝试运行云调度程序时,它总是说 Permsiion denies 错误

 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 提供的 cloud schduler sa 服务- **** @gcp-sa-cloudscheduler.iamaccount .gserviceaccount.com 所有者角色和 Cloud Functions 管理员角色
  • 我的云功能的入口设置为允许所有流量。

  • 我的云调度程序仅在我运行以下命令时才有效
    gcloud 函数 add-iam-policy-binding cloud-function --member="allUsers"--role="roles/cloudfunctions.invoker"

    最佳答案

    在 Cloud Scheduler 页面上,您必须添加一个服务帐户以用于调用私有(private) Cloud Function。在 Cloud Scheduler 设置中,您必须

  • 点击 SHOW MORE在底部
  • 选择 Add OIDC tokenAuth Header栏目
  • 在调度程序的服务帐户电子邮件中添加服务帐户电子邮件
  • 使用与 Cloud Functions 相同的基本 URL(部署时提供的 URL)填写 Audience

  • Scheduler 的服务帐户电子邮件必须被授予角色 functions.Invoker
    enter image description here

    关于google-cloud-platform - 从云调度程序调用谷歌云函数时获取权限被拒绝错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63980844/

    相关文章:

    google-cloud-platform - 如何使用 Terraform 获取默认的 GCP 项目和区域?

    firebase - 如何在其他计算机上处​​理现有的Firebase(功能)项目?

    android - 待定 Intent 未按预期工作

    google-app-engine - *.appspot.com 存储桶被误删除,如何恢复?

    python-3.x - 如何将多个单元格添加到bigtable表中的一行?

    google-bigquery - 当数据实际包含多个空格时,BigQuery GUI 仅显示 1 个空格

    google-cloud-platform - Google Cloud Build 子构建

    android - 谷歌播放发布/订阅主题的应用内购买通知

    python - 为什么云函数采用不同的时区/时间?

    google-cloud-platform - 如何从 Google Cloud Scheduler 访问内部 VPC http 端点?