google-cloud-platform - Google Cloud Functions + Endpoints via ESPv2:超时问题
问题描述
我有各种 Cloud Functions 可以通过 Google Endpoints for Cloud Functions 访问。我或多或少地遵循了本指南:https ://cloud.google.com/endpoints/docs/openapi/get-started-cloud-functions 。这会在 Google Cloud Run 中设置一个ESPv2实例。到目前为止,它正在工作。
一项长期运行的云功能会出现问题。如果请求运行超过约。30秒,结束。然后 API 返回 504 错误代码。
Cloud Run Logs 显示以下条目:
请求已被终止,因为它已达到最大请求超时。要更改此限制,请参阅https://cloud.google.com/run/docs/configuring/request-timeout
参考文档说明了如何配置 Cloud Run 服务超时。我已经有一个更高的超时时间:
spec:
timeoutSeconds: 900
函数本身完成没有错误。所以我想问题一定出在 Endpoints 或 Cloud Run 上。
对响应文档进行故障排除没有帮助。首先,我认为它仅适用于 ESPv1(我无法为 v2 明确找到类似的东西)并且它根本没有提到 504 响应。
是否有可能我必须直接配置 Envoy 服务器?我该怎么做?我还缺少其他什么来配置超时吗?
解决方案
我认为这在 Cloud Run 上不是问题(最大超时时间是 900 秒而不是 300(Cloud Run 上的默认值,PubSub 的最大值是 600))。
所以 Cloud Endpoint 有一个超时。但它记录在 15 秒,而不是 30 秒,奇怪......所以你可以用你的 x-google-backend 定义中的截止日期参数覆盖它
推荐阅读
- ssas - 如何在 SSAS 的多维数据集中将时间间隔与度量组连接?
- python - Flask 表单:如何使用多个表单在一次提交中将父实体和子实体添加到数据库?
- apache-spark - 将 json 数据值嵌套到 DataFrame
- c# - 如何将一个类的对象存储在另一个类中以访问该类
- amcharts - 尝试使用 Amchart 绘制三条线,但未绘制线
- python - 如何将 lambda 附加到 python 中的列表?
- ruby-on-rails - 在关联模型中通过多个参数查找记录的条件是什么?
- eclipse-che - 无法在 Eclipse che 中创建/导入项目
- java - 无法在 S3 中将文件从一个文件夹移动到另一个文件夹
- javascript - 滚动缩放