Google cloud platform 谷歌云调度器:为什么云功能运行成功,但记录器仍然显示错误?
我设置了一个GoogleCloudScheduler作业,通过HTTP触发一个云函数。我可以肯定,云功能被触发并成功运行——它已经产生了预期的结果。 但是,计划程序作业仍显示“失败”,记录器如下所示: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
{
"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中深入查看其详细日志时,我只能得到错误消息。你是对的,我只使用控制台设置了调度程序。