狀態機別名 - AWS Step Functions

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

狀態機別名

別名是最多兩個版本的相同狀態機的指針。您可以為狀態機器建立多個別名。每個別名都有一個唯一的 Amazon 資源名稱(ARN)。別名 ARN 是狀態機器 ARN 和別名名稱的組合,以冒號 (:) 分隔。下列範例顯示狀態機別名 ARN 的格式。

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

您可以使用別名在兩個狀態機器版本之一之間路由流量。您也可以建立指向單一版本的別名。別名只能指向狀態機器版本。您不能使用別名來指向另一個別名。您也可以更新別名,以指向不同版本的狀態機器。

狀態機別名的圖表。此別名會將 80% 的要求傳送至狀態機器至版本 1,而 20% 的要求傳送至第 2 版。

建立狀態機器別名 (主控台)

您可以使用 Step Functions 主控台或叫用 CreateStateMachineAliasAPI 動作,為每個狀態機器建立最多 100 個別名。若要要求提高此軟限制,請使用中的「Sup port 中心」頁面AWS Management Console。從主控台或叫用 DeleteStateMachineAliasAPI 動作來刪除未使用的別名。

建立狀態機別名的步驟
  1. 開啟 Step Functions 主控台,然後選擇現有的狀態機器。

  2. 狀態機器詳細資訊頁面上,選擇名索引標籤。

  3. 選擇 [建立新別名]。

  4. Create alias (建立別名) 頁面,執行下列動作:

    1. 輸入別名

    2. (選用) 輸入別名的 Description (描述)

  5. 若要在別名上設定路由,請參閱別名路由組態

  6. 選擇 [建立別名]。

使用 Step Functions API 作業管理別名

Step Functions 提供下列 API 作業,可用來建立和管理狀態機器別名或取得別名相關資訊:

若要建立指向使PROD用命名之狀態機器版本 1 的別名 AWS Command Line Interface,請myStateMachine使用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%。

使用別名運行狀態機(控制台)

您可以從控制台或使用別名的 ARN 調用 StartExecutionAPI 動作,以使用別名來啟動狀態機器執行。Step Functions 然後運行別名指定的版本。根據預設,如果您在啟動狀態機器執行時未指定版本或別名,Step Functions 會使用最新的修訂版本。

若要使用別名啟動狀態機執行
  1. 開啟 Step Functions 主控台,然後選擇您已為其建立別名的現有狀態機器。如需建立別名的資訊,請參閱建立狀態機器別名 (主控台)

  2. 狀態機器詳細資訊頁面上,選擇名索引標籤。

  3. 在「名」段落中,執行下列動作:

    1. 選取您要開始執行的別名。

    2. 選擇 Start execution (開始執行)

  4. (選擇性) 在 [開始執行] 對話方塊中,輸入執行項目的名稱。

  5. 如果需要,請輸入執行輸入,然後選擇 [開始執行]。