当前位置: 首页 > 知识库问答 >
问题:

当ingressSettings=ALLOW_INTERNAL_ONLY时,如何从Google Cloud Scheduler调用Google Cloud函数?

廖诚
2023-03-14

在同一个项目中,我有一个超文本传输协议云功能和云计划程序,它向该功能发送一个POST请求。我想只允许项目内部的请求调用该功能。然而,当我将入口设置设置为“只允许内部流量”时,云计划程序会得到“PERMISSION_DENIED”

这里是错误日志(编辑)


httpRequest: {
  status: 403   
 }
 insertId: "insert_id"  

jsonPayload: {
  @type: "type.googleapis.com/google.cloud.scheduler.logging.AttemptFinished"   
  jobName: "projects/project_name/locations/location/jobs/cloud_scheduler_job"   
  status: "PERMISSION_DENIED"   
  targetType: "HTTP"   
  url: "https://location-project_name.cloudfunctions.net/cloud_function_name"   
 }
 logName: "projects/project_name/logs/cloudscheduler.googleapis.com%2Fexecutions"  
 receiveTimestamp: "2020-02-20T13:15:43.134508712Z"  

resource: {

labels: {
   job_id: "cloud_scheduler_name"    
   location: "location"    
   project_id: "project_id"    
  }
  type: "cloud_scheduler_job"   
 }
 severity: "ERROR"  
 timestamp: "2020-02-20T13:15:43.134508712Z"  
}

链接到入口设置的UI选项

共有2个答案

方航
2023-03-14

当您使用“仅允许内部流量”选项时,您需要在云功能中使用某种身份验证(为了避免这种情况,您可以使用“允许所有流量”选项)。

请查看链接中提供的第三条评论:https://serverfault.com/questions/1000987/trigger-google-cloud-functions-from-google-cloud-scheduler-with-private-network

贝钧
2023-03-14

根据官方的留档:

要使用Cloud Scheduler,您的云项目必须包含位于受支持区域之一的应用程序引擎应用程序。如果您的项目没有应用程序引擎应用程序,则必须创建一个。

云调度概述

因此,通过运行以下命令来查找应用程序引擎应用程序的位置:

gcloud app describe
#check for the locationId: europe-west2

然后确保您使用入口设置将云功能部署到与应用程序引擎应用程序相同的位置,“仅允许内部流量”。

我在我的应用程序引擎应用程序所在的区域部署了一个云功能,一切正常。

 类似资料:
  • 嗨,我正在尝试从移动后端调用lambda函数。 我已经使用生成了Lambda函数。网芯 这调用很好,在. net core和AWS控制台中没有任何错误。 但当我试图从Android Studio调用它时,我得到了以下错误。 Java代码, 接口:

  • 问题内容: 如何从PHP调用JavaScript函数? 以下代码来自 xyz.html (单击按钮时),它在外部 xyz.js中 调用a 。这将调用wait.php。 和 wait.php 从那里以同样的方式从另一个PHP文件调用代码。 该否则工作正常,但它不会被调用我想要的方式。 问题答案: 就PHP而言(或者实际上,通常是一个Web服务器),HTML页面只不过是一个大字符串而已。 您可以使用P

  • 问题内容: 我正在做一个网络抓取项目。我正在使用的网站之一的数据来自Javascript。 在我之前的一个问题中,有人建议我可以直接从Python调用Javascript,但是我不确定如何实现。 例如:如果JavaScript函数定义为: 如何从Python调用JavaScript函数? 问题答案: 查找具有Python绑定的JavaScript解释器。(尝试Rhino?V8?SeaMonkey?

  • 问题内容: 我熟悉如何使ajax转到php页面并执行一系列操作,然后返回json数据。但是,可以调用驻留在给定页面中的特定函数吗? 基本上我想要的是减少项目中的文件数。因此,我可以将很多常用功能放在一页中,然后立即调用我想要的任何功能。 问题答案: 对于ajax请求 1.在您的网页中包含Jquery库。例如: 2.点击按钮调用功能 3.点击按钮,调用JavaScript创建函数。 在服务器端的te

  • 问题内容: 我想从JavaScript 调用,这是一个C#函数。我尝试了下面的代码,但是无论JavaScript条件是还是,都被调用了! JavaScript代码: 后面的C#代码: 如何从JavaScript调用C#函数? 问题答案: 您可以使用Web方法和Ajax:

  • 问题内容: 我需要从Java调用C#函数,为此,我创建了以下代码。我有一个创建的Java头文件Authenticator.h,代码如下: 然后,我创建了一个身份验证的C#函数 然后,我尝试使用以下代码从C ++(项目创建dll)中调用C#函数; 最后创建一个需要从Java调用的dll。该dll已创建,并且可以在Java中很好地加载它,但是在Java中却收到此错误日志。我可能会错过什么。 问题答案: