選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

AWS Step Functions 叫用動作參考

焦點模式
AWS Step Functions 叫用動作參考 - AWS CodePipeline

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

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

執行下列 AWS CodePipeline 動作:

  • 從管道啟動 AWS Step Functions 狀態機器執行。

  • 透過動作組態中的屬性或位於管道成品中做為輸入傳遞的檔案,為狀態機器提供初始狀態。

  • 選擇性地設定執行 ID 字首,以識別源自動作的執行。

  • 支援標準和快速狀態機器。

注意

Step Functions 動作會在 Lambda 上執行,因此具有與 Lambda 函數成品大小配額相同的成品大小配額。如需詳細資訊,請參閱《Lambda 開發人員指南》中的 Lambda 配額

動作類型

  • 類別:Invoke

  • 擁有者:AWS

  • 提供者:StepFunctions

  • 版本:1

組態參數

StateMachineArn

必要:是

要叫用之狀態機器的 Amazon Resource Name (ARN)。

ExecutionNamePrefix

必要:否

依預設,動作執行 ID 會用作為狀態機執行名稱。如果有提供字首,會與連字號用於動作執行 ID 的前綴,並一起用作為狀態機執行名稱。

myPrefix-1624a1d1-3699-43f0-8e1e-6bafd7fde791

對於快速狀態機器,名稱應該只包含 0-9、A-Z、a-z、- 和 _。

InputType

必要:否

  • Literal (常值) (預設):指定此項時,Input (輸入) 欄位中的數值會直接傳遞至狀態機輸入。

    選取文字輸入欄位的範例項目:

    {"action": "test"}
  • FilePath:由 Input (輸入) 欄位指定的輸入成品中的檔案內容會用作為狀態機器執行的輸入。當 InputType 設定為 FilePath 時,需要輸入成品。

    選取 FilePath輸入欄位的範例項目:

    assets/input.json
輸入

必要:有條件

  • Literal (常值):當 InputType 設定為 Literal (常值) (預設) 時,此為選用欄位。

    如果有提供此項,input (輸入) 欄位會直接用作為狀態機器執行的輸入。否則,會使用空的 JSON 物件 {} 叫用狀態機器。

  • FilePath:當 InputType 設定為 FilePath 時,需要此欄位。

    InputType 設定為 FilePath 時,也需要輸入成品。

    在指定的輸入成品中的檔案內容會用作為狀態機器執行的輸入。

Input artifacts (輸入成品)

  • 成品數量: 0 to 1

  • 描述: 如果 InputType 設定為 FilePath,則需要此成品,並且會用來取得狀態機器執行的輸入。

輸出成品

  • 成品數量: 0 to 1

  • 描述:

    • 標準狀態機器:如果有提供此項,則會使用狀態機器的輸出填入輸出成品。這是在狀態機器執行成功完成後,從 Step Functions DescribeExecution API 回應的 output 屬性取得。

    • 快速狀態機器:不支援。

輸出變數

此動作會產生輸出變數,並且可供管道中下游動作的動作組態進行參考。

如需詳細資訊,請參閱變數參考

StateMachineArn

狀態機器的 ARN。

ExecutionArn

執行狀態機器的 ARN。僅限標準狀態機器。

動作組態範例

預設輸入的範例

YAML
Name: ActionName ActionTypeId: Category: Invoke Owner: AWS Version: 1 Provider: StepFunctions OutputArtifacts: - Name: myOutputArtifact Configuration: StateMachineArn: arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine ExecutionNamePrefix: my-prefix
JSON
{ "Name": "ActionName", "ActionTypeId": { "Category": "Invoke", "Owner": "AWS", "Version": 1, "Provider": "StepFunctions" }, "OutputArtifacts": [ { "Name": "myOutputArtifact" } ], "Configuration": { "StateMachineArn": "arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine", "ExecutionNamePrefix": "my-prefix" } }
Name: ActionName ActionTypeId: Category: Invoke Owner: AWS Version: 1 Provider: StepFunctions OutputArtifacts: - Name: myOutputArtifact Configuration: StateMachineArn: arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine ExecutionNamePrefix: my-prefix

常值輸入的範例

YAML
Name: ActionName ActionTypeId: Category: Invoke Owner: AWS Version: 1 Provider: StepFunctions OutputArtifacts: - Name: myOutputArtifact Configuration: StateMachineArn: arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine ExecutionNamePrefix: my-prefix Input: '{"action": "test"}'
JSON
{ "Name": "ActionName", "ActionTypeId": { "Category": "Invoke", "Owner": "AWS", "Version": 1, "Provider": "StepFunctions" }, "OutputArtifacts": [ { "Name": "myOutputArtifact" } ], "Configuration": { "StateMachineArn": "arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine", "ExecutionNamePrefix": "my-prefix", "Input": "{\"action\": \"test\"}" } }
Name: ActionName ActionTypeId: Category: Invoke Owner: AWS Version: 1 Provider: StepFunctions OutputArtifacts: - Name: myOutputArtifact Configuration: StateMachineArn: arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine ExecutionNamePrefix: my-prefix Input: '{"action": "test"}'

輸入檔案的範例

YAML
Name: ActionName InputArtifacts: - Name: myInputArtifact ActionTypeId: Category: Invoke Owner: AWS Version: 1 Provider: StepFunctions OutputArtifacts: - Name: myOutputArtifact Configuration: StateMachineArn: 'arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine' ExecutionNamePrefix: my-prefix InputType: FilePath Input: assets/input.json
JSON
{ "Name": "ActionName", "InputArtifacts": [ { "Name": "myInputArtifact" } ], "ActionTypeId": { "Category": "Invoke", "Owner": "AWS", "Version": 1, "Provider": "StepFunctions" }, "OutputArtifacts": [ { "Name": "myOutputArtifact" } ], "Configuration": { "StateMachineArn": "arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine", "ExecutionNamePrefix": "my-prefix", "InputType": "FilePath", "Input": "assets/input.json" } }
Name: ActionName InputArtifacts: - Name: myInputArtifact ActionTypeId: Category: Invoke Owner: AWS Version: 1 Provider: StepFunctions OutputArtifacts: - Name: myOutputArtifact Configuration: StateMachineArn: 'arn:aws:states:us-east-1:111122223333:stateMachine:HelloWorld-StateMachine' ExecutionNamePrefix: my-prefix InputType: FilePath Input: assets/input.json

Behavior (行為)

在發行期間,CodePipeline 會使用動作組態中指定的輸入來執行設定的狀態機器。

InputType 設定為 Literal (常值) 時,Input (輸入) 動作組態欄位的內容會用作為狀態機器的輸入。當沒有提供常值輸入時,狀態機器執行會使用空的 JSON 物件 {}。如需在不輸入的情況下執行狀態機器執行的詳細資訊,請參閱 Step Functions StartExecution API

InputType 設定為 FilePath 時,動作會將輸入成品解壓縮,並使用在 Input (輸入) 動作組態欄位中指定的檔案內容做為狀態機器的輸入。指定 FilePath 時,Input (輸入) 欄位為必要欄位,且必須存在輸入成品;否則,動作會失敗。

成功啟動執行後,行為將分歧為兩種狀態機類型,「標準」和「快速」

標準狀態機器

如果標準狀態機器執行成功啟動,CodePipeline 會輪詢 DescribeExecution API,直到執行達到結束狀態為止。如果執行成功完成,表示動作成功;否則會失敗。

如果已設定輸出成品,該成品將包含狀態機器的傳回值。這是在狀態機器執行成功完成後,從 Step Functions DescribeExecution API 回應的 output 屬性取得。請注意,此 API 上有強制執行輸出長度限制。

錯誤處理

  • 如果該動作無法啟動狀態機器執行,則動作執行會失敗。

  • 如果在 CodePipeline Step Functions 動作達到逾時 (預設為 7 天) 之前,狀態機器執行無法達到結束狀態,則動作執行會失敗。儘管發生此類失敗,狀態機器可能會繼續執行。如需 Step Functions 中狀態機器執行逾時的詳細資訊,請參閱標準與快速工作流程。

    注意

    您可以為具有動作的帳戶要求增加叫用動作逾時的配額。不過,增加配額會套用至該帳戶所有區域中此類型的所有動作。

  • 如果狀態機器執行達到 FAILED、TIMED_OUT 或 ABORTED 的終端狀態,則動作執行會失敗。

快速狀態機器

如果快速狀態機器執行啟動成功,叫用動作執行會成功完成。

針對快速狀態機器設定的動作考量:

  • 您無法指定輸出成品。

  • 該動作不會等待狀態機器執行完成。

  • 在 CodePipeline 中啟動動作執行後,即使狀態機器執行失敗,動作執行也會成功。

錯誤處理

  • 如果 CodePipeline 無法啟動狀態機器執行,則動作執行會失敗。否則,該動作會立即成功。無論狀態機器執行需要多長時間才能完成或其結果,動作都會在 CodePipeline 中成功。

以下相關資源可協助您使用此動作。

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。