GCP 管理多个云功能流的最佳方式

GCP Best way to manage multiple cloud function flow

我正在研究 GCP 并阅读有关通信和管理云功能的不同方式我最终想知道何时使用提供 GCP 的每项服务。

所以,我一直在阅读有关 GCP ComposerGCP WorkflowsCloud Pub/Sub 的内容,但我不清楚何时使用每一个,或何时使用简单的 HTTP 调用。

我知道这在很大程度上取决于您正在构建的应用程序,但是例如,如果我正在构建一个支付网关并且某些功能应该在验证付款后触发,比如发送电子邮件,不相关业务逻辑,将采购添加到销售平台。那么我应该采用哪一种方式来管理此流程,在哪种情况下使用其他方式会更好?我应该使用事件来创建带有 Pub/Sub 的异步流,还是使用复杂的解决方案,如 composer 和工作流?或者只是简单的 HTTP 调用?

一如既往,这取决于!!即使在您的用例中,也要视情况而定!好的,付款后您想发送电子邮件,制定业务逻辑,将订单添加到您的数据库,...

但是,是不是所有这些操作都可以并行完成,还是需要按照一定的顺序执行,如果一个步骤失败,就停止这个过程?

在第一种情况下,您可以使用 Cloud PubSub 发布一条消息(支付成功),然后并行地扇出到多个函数。否则,您可以使用工作流来测试功能的响应,然后调用,或者不调用以下功能。使用 Composer,您可以执行更多的检查和操作。

你也可以设想在 24 小时后发送另一封电子邮件感谢客户的订单,并使用 Cloud Task 延迟操作。

您谈到了 Cloud Functions,但您还有其他在 GCP 上托管代码的解决方案:App Engine 和 Cloud 运行。在大多数情况下,云功能是单一用途。发送电子邮件非常适合功能。

现在,如果您有“功能集”来浏览库存、查看对象详细信息、查看价格并预订对象(验证订单“预订”您仓库中的订单内容),“功能”都是单一目的,但与同一个领域相关:仓库管理。因此,您可以创建一个网络服务器,该服务器建议不同的路径来管理仓库(如果您愿意,可以为仓库提供微服务)并将其托管在 Cloud运行 或 App Engine 上。

每种产品都有其优点和缺点。当您了解 GCP 上的存储时,您也会看到这一点。大多数时候,您可以使用多种产品来实现目标,但是如果您没有使用正确的产品,速度会变慢,或者成本会更高。