Google cloud platform 谷歌云调度器:为什么云功能运行成功,但记录器仍然显示错误?

Google cloud platform 谷歌云调度器:为什么云功能运行成功,但记录器仍然显示错误?,google-cloud-platform,google-cloud-functions,google-cloud-scheduler,Google Cloud Platform,Google Cloud Functions,Google Cloud Scheduler,我设置了一个GoogleCloudScheduler作业,通过HTTP触发一个云函数。我可以肯定,云功能被触发并成功运行——它已经产生了预期的结果。 但是,计划程序作业仍显示“失败”,记录器如下所示: { "insertId": "8ca551232347v49", "jsonPayload": { "jobName": "projects/john/locations/asia-south

我设置了一个GoogleCloudScheduler作业,通过HTTP触发一个云函数。我可以肯定,云功能被触发并成功运行——它已经产生了预期的结果。 但是,计划程序作业仍显示“失败”,记录器如下所示:

{
  "insertId": "8ca551232347v49",
  "jsonPayload": {
    "jobName": "projects/john/locations/asia-southeast2/jobs/Get_food",
    "status": "UNKNOWN",
    "url": "https://asia-southeast2-john.cloudfunctions.net/Get_food",
    "@type": "type.googleapis.com/google.cloud.scheduler.logging.AttemptFinished",
    "targetType": "HTTP"
  },
  "httpRequest": {},
  "resource": {
    "type": "cloud_scheduler_job",
    "labels": {
      "job_id": "Get_food",
      "location": "asia-southeast2",
      "project_id": "john"
    }
  },
  "timestamp": "2020-10-22T04:08:24.521610728Z",
  "severity": "ERROR",
  "logName": "projects/john/logs/cloudscheduler.googleapis.com%2Fexecutions",
  "receiveTimestamp": "2020-10-22T04:08:24.521610728Z"
}
我已在下面粘贴了云功能代码,其中包含删除敏感信息所需的编辑:

import requests
import pymysql 
from pymysql.constants import CLIENT
from google.cloud import storage
import os
import time 
from DingBot import DING_BOT 
from decouple import config
import datetime 

BUCKET_NAME = 'john-test-dataset'
FOLDER_IN_BUCKET = 'compressed_data'
LOCAL_PATH = '/tmp/'



TIMEOUT_TIME = 500


def run(request):
    """Responds to any HTTP request.
    Args:
        request (flask.Request): HTTP request object.
    Returns:
        The response text or any set of values that can be turned into a
        Response object using
        `make_response <http://flask.pocoo.org/docs/1.0/api/#flask.Flask.make_response>`.
    """
        
    while True:
        # some code that will be break the loop in about 200 seconds

    DING_BOT.send_text(msg)
    return 'ok'
导入请求
导入pymysql
从pymysql.constants导入客户端
从google.cloud导入存储
导入操作系统
导入时间
从丁博特进口丁博特
从解耦导入配置
导入日期时间
BUCKET_NAME='john测试数据集'
文件夹\u在\u BUCKET='压缩的\u数据'
本地路径='/tmp/'
超时时间=500
def运行(请求):
“”“响应任何HTTP请求。
Args:
请求(flask.request):HTTP请求对象。
返回:
响应文本或可转换为
响应对象使用
`作出回应。
"""
尽管如此:
#一些代码将在大约200秒内中断循环
发送文本(msg)
返回“ok”
我可以肯定的是,功能结束前的一行,
DING\u BOT.send\u text(msg)
成功执行。我已经收到短信了


什么云可能会出错?

这是一个常见的问题,因为谷歌云控制台的部分用户界面。因此,我假设您只使用控制台设置调度程序

因此,您需要创建或使用或(但GCLOUD更容易)更新它,以添加

事实上,云调度程序也有一个超时(默认为60秒),如果URL在此时间段内没有应答,则该调用将被视为失败

将此参数增加到250秒,应该可以


注意:您还可以使用CLI设置重试策略,如果需要,这可能会很有趣

是否要编辑问题以共享任何人都可以复制并用于复制此行为的代码?执行此操作需要多长时间?您是否尝试在函数末尾设置返回代码
返回“OK”,200
?请查看您的返回代码并获取更多日志?为了更好地理解您的案例,需要提供信息,因为如果不使用云调度程序,您的云功能将按照您的说法运行。@guillaumeblaquiere我尝试过,但没有任何效果。云函数成功运行,但云调度程序显示“失败”。@gso_gabriel我已经查看了stackdriver。。。上面粘贴的错误消息是我唯一能得到的。“云日志”功能显示所有已成功运行。尽管如此,云调度程序显示“失败”,当我在stackdriver中深入查看其详细日志时,我只能得到错误消息。你是对的,我只使用控制台设置了调度程序。