Python 3.x Google云调度程序使用http触发云功能失败
有一个Http触发器云函数可以成功执行 功能代码: 使用stackdriver进行日志记录: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
"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启动流程,而无需等待响应。