繁体   English   中英

谷歌云平台:云函数与 App Engine

[英]Google Cloud Platform: Cloud Functions vs App Engine

这可能是这个问题的错误地方,所以如果需要请重新指导我。

我使用 Google Cloud Functions 部署了几个简单的函数,它们执行以下操作:

  1. 从 AWS 读取文件并写入云 SQL
  2. 聚合 Cloud SQL 数据并将 csv 文件写入 Cloud Storage 存储桶
  3. 聚合数据的简单 OLS 预测 model

我将这些作为单独的函数,因为 (1) 通常需要比 Cloud Function 最大超时时间更长的时间。 正因为如此,我正在考虑将这整个事情作为一项服务转移到 App Engine。 我对 App Engine Standard 的问题是:

  1. 请求超时是什么意思? 如果我要运行这个服务,我是否还有一个很短的时间限制,之后它就不再运行了?
  2. App Engine 是完成此任务的最佳选择吗?

感谢你的帮助

根据Google 文档,GAE 标准对于 http 请求的最大超时为 1 分钟,对于旧环境的 cron/tasks 为 10 分钟。 较新的环境将 http 请求和任务都设置为 10 分钟。 如果您的功能花费的时间比这些时间长,那么 GAE 标准将不适合您。 对于这种情况,您应该查看 GAE Flex - 请参阅此Google 文档,该文档将 Flex 与标准进行了比较)。

其次,在我看来,您所拥有的只是偶尔或在特定预定时间才会被击中的端点。 如果是这样,我还建议您看一下Cloud Run 我们有一篇关于它的博客文章,我们有这个

....关于 Cloud Run 的另一个需要注意的是,它仅在收到 HTTP 请求时运行。 当 HTTP 请求进入时,它会死机并执行您的代码。当它执行完请求后,它会再次“死机”,直到下一个请求进入。这意味着您无需为闲置时间付费,即当它什么都不做时......

  1. 您可以保持 Cloud Functions 和 3 个 Functions 各自实现的强大内聚性,然后您可以使用Cloud Workflows一种无服务器解决方案来编排 3 个 CF 调用。 缺点:您需要为 3 个 CF 调用和 3 个工作流步骤付费。 但这有关系吗? 由于 200 万次 CF 调用是免费的,并且 5000 个工作流步骤是免费的。
  2. 正如@NoCommandLine 所提议的那样,Cloud Run 确实是一种替代方案,其超时时间为 3600s(1h)。 缺点:您需要将代码包装在 http 请求中,并提供像 express 或 gunicorn 这样的网络服务器。
  3. 一个 hack 是为您的代码构建一个 docker 容器,而不需要网络服务器,并使用Cloud Build运行它,超时为 24 小时。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM