18

Google Cloud Functions 似乎非常有趣,因为它是无服务器和零维护的解决方案。但是,什么时候适合在 Google App Engine 上使用 Google Cloud Functions?

4

2 回答 2

9

更新:
截至 2018 年 6 月 12 日, Node.js 8.x 在 Google App Engine 标准环境和柔性环境中均受支持。

简短的回答:这取决于您的需要。

长答案:这是清单

Runtime
Cloud Functions 目前仅支持 Node.js,据我所知,没有任何计划在那里引入新的运行时。如果您对此感到满意,则可以将 Cloud Functions 放入您的选项中。

App Engine 确实支持 Node.js,尽管它仅在柔性环境中可用。App Engine 标准环境支持 Python 2.7、Java 8、Java 7、PHP 5.5、Go 1.8 和 1.6,而 App Engine 灵活环境支持 Python、Java、Node.js、Go、Ruby、PHP 或 .NET。您还可以使用灵活环境中的 dockerfile 提供自己的运行时。因此,如果您想在 Node.js 以外的任何地方开发应用程序,App Engine 是更好的选择。

无服务器架构
您是否正在寻找无服务器架构?您是否对管理实例以及让它们扩大或缩小规模感到沮丧?您不想花时间管理您的服务器吗?如果您对所有这些问题的回答都是肯定的,请选择云功能。
您是否正在寻找细粒度控制?实例和计费。您是否想拥有单独的版本并希望更好地控制这些版本。在这种情况下寻找 App Engine。

微服务你能把
你的代码分解成更小的独立函数吗?选择云函数。
App Engine 确实支持使用相同代码库的微服务架构,但使用不同的 yaml 文件来拆分服务,但是否要将它们分解为服务取决于您。在过去的几年里,我们将所有代码都运行在一个单一的应用程序中,并且它仍然在 App Engine 上运行良好。

数据库
您的应用数据是否存储在 Firebase 中?然后可以在那里轻松使用云功能。如果不是,App Engine 是更好的选择。App Engine 也可以连接到 Firebase,以防您想知道。

还有其他一些事情需要考虑,例如定价,以及您是否希望迁移现有应用程序或者您是否正在从头开始编写内容。事实上,您可以同时使用这两个选项。我们正在为我们的应用程序使用 App Engine (Python) 标准环境,但我们最近迁移了一些在云函数上长期运行的任务,它们运行得非常好。

在我看来,App Engine 是大多数事情的答案,因为 Cloud Functions 是针对特定要求而设计的。

于 2018-03-06T05:39:45.167 回答
4

当您希望执行一个功能(某种逻辑)以响应源自云的事件,并且您不想为此构建(并为此付费)完整的 Web 应用程序。

产品概述

云计算使完全无服务器的计算模型成为可能,其中逻辑可以按需旋转以响应来自任何地方的事件。仅当您的代码正在运行时,才可以从小规模的业务逻辑构建应用程序,计费时间精确到 100 毫秒。为用户提供从零到全球规模的服务,无需管理任何基础设施。

什么是谷歌云功能?

Google Cloud Functions 是用于构建和连接云服务的无服务器执行环境。使用 Cloud Functions,您可以编写简单的、单一用途的函数,这些函数附加到从您的云基础设施和服务发出的事件上。触发正在监视的事件时会触发您的云函数。您的代码在完全托管的环境中执行。无需配置任何基础设施或担心管理任何服务器。

如果您已经有一个与您想要实现的逻辑相关的 GAE 应用程序,那么在应用程序中执行它可能更简单:)

于 2017-03-10T15:11:44.537 回答