Step Functions 工作流程中的状态机别名 - AWS Step Functions

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Step Functions 工作流程中的状态机别名

别名 是指向同一状态机最多两个版本的指针。您可以为状态机创建多个别名。每个别名都有一个唯一的 Amazon 资源名称 (ARN)。别名ARN是状态机和别名的组合,用冒号 (:) 分隔。ARN以下示例显示了状态机别名的格式ARN。

arn:partition:states:region:account-id:stateMachine:myStateMachine:aliasName

您可以使用别名在两个状态机版本之一之间路由流量。您也可以创建指向单个版本的别名。别名只能指向状态机版本。您不能使用别名指向另一个别名。您也可以更新别名以便指向状态机的其他版本。

该图显示别名向 v1 发送 80% 的请求,向 v2 发送 20% 的请求。

创建状态机别名(控制台)

您可以使用 Step Functions 控制台或调用操作为每台状态机创建最多 100 个别名。CreateStateMachineAliasAPI要申请提高此软限制,请使用中的 Su pport Center 页面 AWS Management Console。 从控制台或通过调用操作来删除未使用的别名。DeleteStateMachineAliasAPI

创建状态机别名的操作步骤
  1. 打开 Step Functions 控制台,然后选择一个现有的状态机。

  2. 状态机详细信息页面上,选择别名选项卡。

  3. 选择创建新别名

  4. 创建别名页面上,执行以下操作:

    1. 输入别名名称

    2. (可选)输入别名的描述

  5. 要在别名上配置路由,请参阅别名路由配置

  6. 选择创建别名

使用 Step Fun API ctions 操作管理别名

Step Functions 提供了以下API操作,您可以使用这些操作来创建和管理状态机别名或获取有关别名的信息:

要创建一个名为的别名PROD,该别名指向myStateMachine使用命名的状态机的版本 1 AWS Command Line Interface,使用create-state-machine-alias命令。

aws stepfunctions create-state-machine-alias --name PROD --routing-configuration "[{\"stateMachineVersionArn\":\"arn:aws:states:us-east-1:123456789012:stateMachine:myStateMachine:1\",\"weight\":100}]"

别名路由配置

您可以使用别名在状态机的两个版本之间路由执行流量。例如,假设您要启动状态机的一个新版本。通过在别名上配置路由,可以降低部署新版本所涉及的风险。通过配置路由,您可以将大部分流量发送到状态机的早期测试过的版本上。然后,新版本可以接收较小的百分比,直到您可以确认可以安全地推出新版本。

要定义路由配置,请确保已发布别名指向的两个状态机版本。从别名开始执行时,Step Functions 会从路由配置中指定的版本中随机选择要运行的状态机版本。选择的依据是您在别名路由配置中为每个版本分配的流量百分比。

在别名上配置路由配置的操作步骤
  • 创建别名页面的路由配置下,执行以下操作:

    1. 对于版本,选择别名指向的第一个状态机版本。

    2. 选中在两个版本之间拆分流量复选框。

      提示

      要指向单个版本,请取消选中在两个版本之间拆分流量复选框。

    3. 对于版本,选择别名必须指向的第二个版本。

    4. 流量百分比字段中,指定要路由到每个版本的流量百分比。例如,输入6040 表示将 60% 的执行流量路由到第一个版本,40% 的流量路由到第二个版本。

      合并流量百分比必须等于 100%。

使用别名运行状态机(控制台)

您可以使用控制台中的别名或使用别名调用StartExecutionAPI操作来启动状态机执行。ARNStep Functions 会运行由别名指定的版本。默认情况下,如果在启动状态机执行时没有指定版本或别名,Step Functions 会使用最新的修订版。

使用别名启动状态机执行的操作步骤
  1. 打开 Step Functions 控制台,然后选择一个已创建别名的现有状态机。有关创建别名的信息,请参阅创建状态机别名(控制台)

  2. 状态机详细信息页面上,选择别名选项卡。

  3. 别名部分中,执行以下操作:

    1. 选择要启动执行的别名。

    2. 选择启动执行

  4. (可选)在启动执行对话框中,输入执行名称。

  5. 如果需要,输入执行输入,然后选择启动执行