当前位置: 首页 > 知识库问答 >
问题:

谷歌云功能超时设置不起作用

谭池暝
2023-03-14

我不能让谷歌云功能运行超过60秒,即使超时设置为540秒!!有什么建议吗?

我将部署时的超时标志设置为--timeout=540,并且我知道该设置会通过,因为在GCP WEB UI中会显示540秒的超时设置。我还尝试通过GCP WEB UI手动编辑超时至540。但无论如何,我还是在大约62000毫秒后超过了最后期限。

我已经尝试了pub/sub和https方法作为func触发器,但是仍然在60度左右得到过早的函数超时。

我正在使用以下func设置运行最新的CLI:

  • 触发器:http/pubsub(都经过测试,结果相同)
  • 可用邮箱:2048
  • 运行时间:nodejs6
  • 状态:活动
  • 超时:540s

谢谢大家的意见!

Br Markus

共有3个答案

慕嘉运
2023-03-14

我相信我晚了几年,但这是我的建议。

如果您使用gcp控制台测试选项卡中的test this函数按钮,它会在按钮后面显示:

云控制台中的测试有60秒的超时。请注意,这与功能配置中设置的限制不同。

我希望你能解决这个问题,这个答案能在将来帮助别人。

蒲昊苍
2023-03-14

60秒超时不是GCP云功能设置的结果。例如,如果这是Django/Gunicorn应用程序,则超时来自应用程序中设置的Gunicorn超时。亚马尔

entrypoint: gunicorn -t 3600 -b :$PORT project_name.wsgi

例如,这将为Gunicorn实现3600秒的超时。

东方玉泽
2023-03-14

我使用了延迟留档代码,并执行了与您相同规格的云功能。在留档中,执行延迟120000 ms(2分钟)。我编辑了它,并把它在500000毫秒。这加上CF执行所需的正常时间,将达到所需的执行时间(约9分钟)。如果您添加540000来测试代码,它将以~540025的超时错误执行,因为值本身超过了云函数的超时限制,同时也超过了云函数的默认最大超时限制,即9分钟。

我还尝试使用以下命令创建函数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); 
};

两次执行云函数并返回状态代码200。这意味着您可以将超时设置为超过60秒,这是默认值。

如果您正确地修改了所有内容,但仍然存在这个问题,我建议您重新开始,创建一个新的CF,并使用我提供的文档链接。

 类似资料:
  • 我正在尝试使用Google云存储API,该API现已发布在App Engine网站的文档部分。文档指出,您必须将appengine服务帐户添加为API控制台中的团队成员。然而,我们在谷歌应用程序域中使用云存储,这只允许该域的用户作为团队成员添加。那么,不可能添加服务帐户(@appspot.gserviceaccount.com)吗?。有什么变通办法吗?

  • 我正在向gcs写入一些字节,并希望使用谷歌提供的JSON API包装器,但有一个超时。目前我有: 有没有一种简单的方法可以向、或?

  • 刚刚完成Hello World谷歌云功能教程,收到以下响应头:

  • 问题内容: 建筑: 我们有一个使用2个pubsub主题/订阅对的架构: 定期由cronjob触发主题(例如,每5分钟触发一次)。订阅是我们云功能的触发器。 主题充当我们的一项服务发布的后台作业的队列。云功能在每次执行时读取订阅,以为排队的后台作业提供服务。 这使我们可以控制后台作业的服务频率,而与将它们添加到队列的时间无关。 云功能(由触发)通过pull读取消息。它决定准备好哪些后台作业,并在成功

  • 我想能够从谷歌云功能中调用谷歌应用程序引擎,有可能吗?找不到任何解决办法

  • 我们正在使用一个由pub/sub触发的云功能来确保电子邮件的传递。有时,电子邮件服务需要很长时间来响应,我们的云功能在返回错误之前就终止了。由于消息已经被确认,我们的电子邮件丢失了。