View a markdown version of this page

Step Functions 工作流程中的狀態機器別名 - AWS Step Functions

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

Step Functions 工作流程中的狀態機器別名

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

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

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

顯示 80% 的請求傳送到 v1,以及 20% 傳送到 v2 的別名圖表。

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

您可以使用 Step Functions 主控台或叫用 CreateStateMachineAlias API 動作,為每個狀態機器建立最多 100 個別名。若要請求提高此軟性限制,請使用 中的支援中心頁面AWS 管理主控台。從主控台或透過叫用 DeleteStateMachineAlias API 動作來刪除未使用的別名。

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

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

  3. 選擇建立新的別名。

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

    1. 輸入別名名稱。

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

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

  6. 選擇建立別名。

使用 Step Functions API 操作管理別名

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

別名路由組態

您可以使用別名,在狀態機器的兩個版本之間路由執行流量。例如,假設您想要啟動新版本的狀態機器。您可以在別名上設定路由,以降低部署新版本所涉及的風險。透過設定路由,您可以將大部分流量傳送至舊版、經過測試的狀態機器。然後,新版本可以接收較小的百分比,直到您確認可安全地轉傳新版本為止。

若要定義路由組態,請確定您發佈別名指向的兩個狀態機器版本。當您從別名開始執行時,Step Functions 會隨機選擇要從路由組態中指定的版本執行的狀態機器版本。它以您在別名路由組態中指派給每個版本的流量百分比為基礎。

在別名上設定路由組態
  • 在建立別名頁面的路由組態下,執行下列動作:

    1. 針對版本,選擇別名指向的第一個狀態機器版本。

    2. 選取在兩個版本之間分割流量核取方塊。

      提示

      若要指向單一版本,請清除在兩個版本之間分割流量核取方塊。

    3. 針對版本,選擇別名必須指向的第二個版本。

    4. 在流量百分比欄位中,指定要路由至每個版本的流量百分比。例如,輸入 60和 40 將 60% 的執行流量路由到第一個版本,將 40% 的流量路由到第二個版本。

      合併流量百分比必須等於 100%。

使用別名執行狀態機器 (主控台)

您可以從 主控台或使用別名的 ARN 叫用 StartExecution API 動作,以使用別名啟動狀態機器執行。Step Functions 接著會執行別名指定的版本。根據預設,如果您在啟動狀態機器執行時未指定版本或別名,Step Functions 會使用最新的修訂版。

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

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

  3. 在別名區段中,執行下列動作:

    1. 選取您要啟動執行的別名。

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

  4. (選用) 在開始執行對話方塊中,輸入執行的名稱。

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