

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Step Functions 工作流程中的狀態機器別名
<a name="concepts-state-machine-alias"></a>

*別名*是同一狀態機器最多兩個版本的指標。您可以為狀態機器建立多個別名。每個別名都有唯一的 Amazon Resource Name (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_tw/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. 在 **Create alias (建立別名)** 頁面，執行下列動作：

   1. 輸入**別名名稱**。

   1. (選用) 輸入別名的 **Description (描述)**。

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. 選擇 **Start execution (開始執行)**。

1. （選用） 在**開始執行**對話方塊中，輸入執行的名稱。

1. 如有必要，請輸入執行輸入，然後選擇**開始執行**。