即使超时设置为540秒,我也无法让Google Cloud Function运行超过60秒!有什么建议吗?
我将部署时的超时标志设置为--timeout = 540,并且由于540 sec超时设置出现在GCP WEB UI中,所以我知道设置可以通过。我还尝试通过GCP WEB UI将超时手动编辑为540。但是无论如何,在大约62000 ms之后,我仍然得到DEADLINE_EXCEEDED。
我已经尝试使用pub / sub和https方法作为func触发器,但是仍然会在〜60s时获得过早的函数超时。
我正在使用以下这些func设置运行最新的CLI:
感谢您的投入!
Br Markus
答案 0 :(得分:0)
我已经使用documentation code for delay并执行了与您的规格相同的Cloud Function。在文档中,执行被延迟了120000 ms(2分钟)。我对其进行了编辑,并将其设置为500000 ms。这加上CF执行所需的正常时间,将达到所需的执行时间(大约9分钟)。如果您添加540000来测试代码,它将执行〜540025,并发生超时错误,因为该值本身超过了Cloud Function的超时限制,同时超过了9分钟的default maximum timeout limit of a Cloud Function。
我也尝试使用此命令创建函数
gcloud functions deploy [FUNCTION_NAME] --trigger-http --timeout=540
。
成功部署后,我按如下所示在GCP云功能UI中手动更新了代码
exports.timeoutTest = (req, res) => {
setTimeout(() => {
let message = req.query.message || req.body.message || 'Hello World today!';
res.status(200).send(message);
res.end();
}, 500000);
};
两次执行Cloud Function并返回状态代码200。这意味着您可以将超时设置为60秒以上,这是默认值。
如果您正确地修改了所有内容,但仍然存在此问题,建议您重新开始,创建一个新的CF,并使用我提供的文档链接。
答案 1 :(得分:0)
60秒超时不是由GCP云功能设置引起的。例如,如果这是Django / Gunicorn App,则超时来自在app.yaml中设置的gunicorn超时
entrypoint: gunicorn -t 3600 -b :$PORT project_name.wsgi
例如,这将使gunicorn超时3600秒。
答案 2 :(得分:0)
我相信我迟到了几年,但这是我的建议。
如果您在 gcp 控制台的测试选项卡中使用测试此功能按钮,它会在按钮之后显示:
<块引用>在 Cloud Console 中进行测试有 60 秒的超时。请注意,这与功能配置中设置的限制不同。
我希望你修复它,这个答案可以在未来帮助别人。