本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Ruby Flow 用户的选项
适用于 Ruby的 Amazon Flow Framework 已不再主动进行开发。现有代码仍将无限期继续运行,但不会再有新功能或新版本。本主题将介绍继续使用 Amazon SWF 的使用和迁移选项,以及有关如何迁移到 Step Functions 的信息。
选项 | 描述 |
---|---|
目前,Ruby Flow Framework 将继续使用。如果您不执行任何操作,您的代码将继续按现有方式运行。计划在不久的将来从适用于 Ruby 的 Amazon Flow Framework 迁移。 |
|
Java Flow Framework 仍在进行积极开发,并将继续收到新功能和更新。 |
|
Step Functions 可通过由状态机控制的可视化工作流程,来协调分布式应用程序的组件。 |
|
直接使用 SWF API,无需 Flow Framework | 您可以直接使用 SWF API 继续在 Ruby 中工作,而无需使用 Ruby Flow Framework。 |
无论对于 Ruby 还是 Java,Flow Framework 提供的优势均在于,可让您专注于工作流程逻辑。该架构可处理大多数通信和协作的详细信息,并将某些复杂问题抽象化。您可以通过迁移到 Java Flow Framework 来继续使用相同级别的抽象,也可以直接与 Amazon SWF SDK 交互。
继续使用 Ruby Flow Framework
在短期内,适用于 Ruby 的 Amazon Flow Framework 将继续按原样运行。如果您有使用适用于 Ruby 的 Amazon Flow Framework 编写的工作流,它们将继续运行。在没有更新、支持或安全修复的情况下,您最好制定明确的计划,以便在不久的将来从适用于 Ruby 的 Amazon Flow Framework 迁移出来。
迁移到 Java Flow Framework
适用于 Java 的 Amazon Flow Framework 仍在积极开发中。适用于 Java 的 Amazon Flow Framework 在概念上与适用于 Ruby 的 Amazon Flow Framework 类似:您仍然可以专注于工作流逻辑,该框架将帮助您管理决策程序逻辑,并让您可以更轻松地管理 Amazon SWF 的其他方面。
迁移到 Step Functions
Amazon Step Functions 提供的服务与 Amazon SWF 类似,但工作流逻辑由状态机控制。借助 Step Functions,您可以使用可视化工作流来协调分布式应用程序和微服务的组件。您可通过能执行离散函数(或称为任务)的各单独组件构建应用程序,这样您能够快速扩展和更改应用程序。Step Functions 提供了一种可靠的方法来协调组件并逐步执行应用程序的函数。图形控制台可将应用程序的组件直观地展示为一系列步骤。它可以自动触发和跟踪各个步骤,并在出现错误时重试,因此您的应用程序每次都能按照预期顺序执行。Step Functions 会记录每个步骤的状态,这样在出现错误时,您就能够迅速诊断并调试问题。
在 Step Functions 中,您可以使用声明性 JSON 编写的状态机来管理各项任务的协调,该状态机是使用 Amazon States Language 定义的。通过使用状态机,您不必编写和维护决定程序来控制您的应用程序逻辑。Step Functions 提供了一种直观、高效且敏捷的方法来使用可视化工作流协调应用程序组件。您应考虑为所有新应用程序使用 Amazon Step Functions,Step Functions 为您当前在适用于 Ruby 的 Amazon Flow Framework 中实施的工作流提供了一个绝佳的迁移平台。
为了帮助您将任务迁移到 Step Functions,同时继续利用 Ruby 语言技能,Step Functions 提供了一个 Ruby 活动工作线程示例。该示例采用了实现活动工作线程的最佳实践,可用作将任务逻辑迁移到 Step Functions 的模板。有关更多信息,请参阅《Amazon Step Functions Developer Guide》https://docs.amazonaws.cn/step-functions/latest/dg/中的 Example Activity Worker in Ruby。
注意
对于许多客户来说,从适用于 Ruby 的 Amazon Flow Framework 迁移到 Step Functions 是最佳方案。但是,如果您的进程中需要信号干预,或者您需要启动子进程将结果返回给父进程,请考虑直接使用 Amazon SWF API,或迁移到适用于 Java 的 Amazon Flow Framework。
有关 Amazon Step Functions 的更多信息,请参阅:
直接使用 Amazon SWF API
虽然适用于 Ruby 的 Amazon Flow Framework 可以管理 Amazon SWF 的部分复杂任务,但您也可以直接使用 Amazon SWF API。直接使用 API 可通过构建工作流程使您完全控制任务的执行和协作,无需担心跟踪任务进度和维持任务状态等底层复杂性。