Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Google云调度程序使用http触发云功能失败_Python 3.x_Google Cloud Functions_Google Cloud Scheduler - Fatal编程技术网

Python 3.x Google云调度程序使用http触发云功能失败

Python 3.x Google云调度程序使用http触发云功能失败,python-3.x,google-cloud-functions,google-cloud-scheduler,Python 3.x,Google Cloud Functions,Google Cloud Scheduler,有一个Http触发器云函数可以成功执行 功能代码: 使用stackdriver进行日志记录: "Function execution took 301394 ms, finished with status code: 200" { httpRequest: {…} insertId: "..." jsonPayload: { @type: "type.googleapis.com/google.cloud.scheduler.logging.AttemptFini

有一个Http触发器云函数可以成功执行

功能代码:

使用stackdriver进行日志记录:

"Function execution took 301394 ms, finished with status code: 200" 
{
 httpRequest: {…}  
  insertId: "..."  
  jsonPayload: {
   @type: "type.googleapis.com/google.cloud.scheduler.logging.AttemptFinished"   
   jobName: "......"   
   status: "UNKNOWN"   
   targetType: "HTTP"   
   url: "https://...."   
  }
  logName: "...."  
  receiveTimestamp: "2020-03-02T06:20:36.391816880Z"  
  resource: {…}  
  severity: "ERROR"  
  timestamp: "2020-03-02T06:20:36.391816880Z"  
 }
现在,我创建了一个云调度器,每天早上4:00触发这个云函数

使用stackdriver记录调度程序:

"Function execution took 301394 ms, finished with status code: 200" 
{
 httpRequest: {…}  
  insertId: "..."  
  jsonPayload: {
   @type: "type.googleapis.com/google.cloud.scheduler.logging.AttemptFinished"   
   jobName: "......"   
   status: "UNKNOWN"   
   targetType: "HTTP"   
   url: "https://...."   
  }
  logName: "...."  
  receiveTimestamp: "2020-03-02T06:20:36.391816880Z"  
  resource: {…}  
  severity: "ERROR"  
  timestamp: "2020-03-02T06:20:36.391816880Z"  
 }

我设法重现了您的问题,这就是我所想的,云调度器没有等待来自云功能的响应。如果您有一个最多需要9分钟才能执行的CF,即使您将最后期限延长到9分钟,这也只是在CF端,CS将停止等待,将请求的状态保留为未知(因此,失败)

如果您是从sdk创建CS,那么应该查看参数,这将允许CS等待更长时间


如果您不需要看到来自CS的响应,您可以尝试使用启动流程,而无需等待。

我设法重现了您的问题,我是这么想的,云调度器没有等待来自云功能的响应。如果您有一个最多需要9分钟才能执行的CF,即使您将最后期限延长到9分钟,这也只是在CF端,CS将停止等待,将请求的状态保留为未知(因此,失败)

如果您是从sdk创建CS,那么应该查看参数,这将允许CS等待更长时间


如果您不需要看到CS的响应,您可以尝试使用启动流程,而无需等待。

我们发现并经谷歌支持部门确认的内容: 1.通过GCP云控制台创建的作业只能工作60秒,即使云功能设置为最大540秒,它也会返回FAILED。注意,CF将成功执行。 2.要克服此问题,请使用gcloud SDK命令通过命令行创建作业:

当我们设置--trument deadline=1200s时,它返回了成功,这高于执行时间540s


希望这能帮助我们找到并得到谷歌支持部门的确认: 1.通过GCP云控制台创建的作业只能工作60秒,即使云功能设置为最大540秒,它也会返回FAILED。注意,CF将成功执行。 2.要克服此问题,请使用gcloud SDK命令通过命令行创建作业:

当我们设置--trument deadline=1200s时,它返回了成功,这高于执行时间540s


希望这有帮助

您的功能如何?它需要任何参数吗?给我们看看code@ajorquera我的函数不需要任何参数。只需使用“获取”方法,您的CF似乎需要花费大量时间来执行。当然,您已经延长了CF的截止日期,但我相信CS不再等待回复。也许您可以尝试使用Pub/Sub启动流程,而无需等待响应。你的功能如何?它需要任何参数吗?给我们看看code@ajorquera我的函数不需要任何参数。只需使用“获取”方法,您的CF似乎需要花费大量时间来执行。当然,您已经延长了CF的截止日期,但我相信CS不再等待回复。也许您可以尝试使用Pub/Sub启动流程,而无需等待响应。