

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

# Step Functions 工作流程中的状态机别名
<a name="concepts-state-machine-alias"></a>

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

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

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

![\[该图显示别名将 80% 的请求发送到 v1，而将 20% 的请求发送到 v2。\]](http://docs.aws.amazon.com/zh_cn/step-functions/latest/dg/images/aliases-concept.png)


**Topics**
+ [创建状态机别名（控制台）](#procedure-create-aliases)
+ [使用管理别名 APIs](#manage-aliases-with-api)
+ [别名路由配置](#alias-routing-config)
+ [使用别名运行状态机（控制台）](#procedure-run-exec-with-alias)

## 创建状态机别名（控制台）
<a name="procedure-create-aliases"></a>

您可以使用 Step Functions 控制台或调用 [CreateStateMachineAlias](https://docs.aws.amazon.com/step-functions/latest/apireference/API_CreateStateMachineAlias.html)API 操作为每台状态机创建最多 100 个别名。要请求提高此软限制，请使用 [AWS 管理控制台](https://docs.aws.amazon.com/servicequotas/latest/userguide/request-quota-increase.html)中的**支持中心**页面。从控制台或通过调用 [DeleteStateMachineAlias](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DeleteStateMachineAlias.html)API 操作来删除未使用的别名。

**创建状态机别名的操作步骤**

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择一个现有的状态机。

1. 在**状态机详细信息**页面上，选择**别名**选项卡。

1. 选择**创建新别名**。

1. 在**创建别名**页面上，执行以下操作：

   1. 输入**别名名称**。

   1. （可选）输入别名的**描述**。

1. 要在别名上配置路由，请参阅[别名路由配置](#alias-routing-config)。

1. 选择**创建别名**。

## 使用 Step Functions API 操作管理别名
<a name="manage-aliases-with-api"></a>

Step Functions 提供了以下 API 操作，您可以使用这些操作来创建和管理状态机别名或获取有关别名的信息：
+ [CreateStateMachineAlias](https://docs.aws.amazon.com/step-functions/latest/apireference/API_CreateStateMachineAlias.html)— 为状态机创建别名。
+ [DescribeStateMachineAlias](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DescribeStateMachineAlias.html)— 返回有关状态机别名的详细信息。
+ [ListStateMachineAliases](https://docs.aws.amazon.com/step-functions/latest/apireference/API_ListStateMachineAliases.html)— 列出指定状态机 ARN 的别名。
+ [UpdateStateMachineAlias](https://docs.aws.amazon.com/step-functions/latest/apireference/API_UpdateStateMachineAlias.html)— 通过修改现有状态机别名的`description`或来更新其配置`routingConfiguration`。
+ [DeleteStateMachineAlias](https://docs.aws.amazon.com/step-functions/latest/apireference/API_DeleteStateMachineAlias.html)— 删除状态机别名。

要创建`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:region:account-id:stateMachine:myStateMachine:1\",\"weight\":100}]"
```

## 别名路由配置
<a name="alias-routing-config"></a>

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

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



**在别名上配置路由配置的操作步骤**
+ 在**创建别名**页面的**路由配置**下，执行以下操作：

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

  1. 选中**在两个版本之间拆分流量**复选框。
**提示**  
要指向单个版本，请取消选中**在两个版本之间拆分流量**复选框。

  1. 对于**版本**，选择别名必须指向的第二个版本。

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

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

## 使用别名运行状态机（控制台）
<a name="procedure-run-exec-with-alias"></a>

您可以使用控制台中的别名启动状态机执行，也可以使用别名的 ARN 调用 [StartExecution](https://docs.aws.amazon.com/step-functions/latest/apireference/API_StartExecution.html)API 操作。Step Functions 会运行由别名指定的版本。默认情况下，如果在启动状态机执行时没有指定版本或别名，Step Functions 会使用最新的修订版。

**使用别名启动状态机执行的操作步骤**

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择一个已创建别名的现有状态机。有关创建别名的信息，请参阅[创建状态机别名（控制台）](#procedure-create-aliases)。

1. 在**状态机详细信息**页面上，选择**别名**选项卡。

1. 在**别名**部分中，执行以下操作：

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

   1. 选择**启动执行**。

1. （可选）在**启动执行**对话框中，输入执行名称。

1. 如果需要，输入执行输入，然后选择**启动执行**。