選取您的 Cookie 偏好設定

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

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

從執行中執行啟動新的 AWS Step Functions 狀態機器

焦點模式
從執行中執行啟動新的 AWS Step Functions 狀態機器 - AWS Step Functions

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

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

Step Functions 整合了自己的 API 做為服務整合。了解如何使用 Step Functions,直接從執行中的任務狀態啟動狀態機器的新執行。在建置新的工作流程時,使用巢狀工作流程執行來降低主要工作流程的複雜性,並重複使用常見的程序。

Optimized Step Functions 整合的主要功能

請注意, 請求回應使用任務權杖等待回呼整合模式沒有最佳化。

如需詳細資訊,請參閱下列內容:

最佳化步進函數 APIs

工作流程範例

以下包含 Task 狀態,此狀態會啟動另一個狀態機器的執行並等待其完成。

{ "Type":"Task", "Resource":"arn:aws:states:::states:startExecution.sync:2", "Parameters":{ "Input":{ "Comment": "Hello world!" }, "StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "Name":"ExecutionName" }, "End":true }

以下包含 Task 狀態,此狀態會啟動另一個狀態機器的執行。

{ "Type":"Task", "Resource":"arn:aws:states:::states:startExecution", "Parameters":{ "Input":{ "Comment": "Hello world!" }, "StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "Name":"ExecutionName" }, "End":true }

以下包含 Task 狀態,此狀態會實作回呼服務整合模式。

{ "Type":"Task", "Resource":"arn:aws:states:::states:startExecution.waitForTaskToken", "Parameters":{ "Input":{ "Comment": "Hello world!", "token.$": "$$.Task.Token" }, "StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "Name":"ExecutionName" }, "End":true }

若要將巢狀工作流程執行與啟動它的父系執行建立關聯,請傳遞特別命名的參數,其中包含從內容物件提取的執行 ID。啟動巢狀執行時,請使用名為 AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID 的參數。將 附加.$至 參數名稱,並使用 參考內容物件中的 ID,以傳遞執行 ID$$.Execution.Id。如需詳細資訊,請參閱存取內容物件

{ "Type":"Task", "Resource":"arn:aws:states:::states:startExecution.sync", "Parameters":{ "Input":{ "Comment": "Hello world!", "AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id" }, "StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "Name":"ExecutionName" }, "End":true }

巢狀狀態機器會傳回下列內容:

資源 輸出
startExecution.sync 字串
startExecution.sync:2 JSON

兩者都將等待巢狀狀態機器完成,但它們會傳回不同的 Output 格式。例如,如果您建立傳回物件 的 Lambda 函數{ "MyKey": "MyValue" },您會得到下列回應:

對於 startExecution.sync:

{ <other fields> "Output": "{ \"MyKey\": \"MyValue\" }" }

對於 startExecution.sync:2:

{ <other fields> "Output": { "MyKey": "MyValue" } }

設定巢狀狀態機器的 IAM 許可

父系狀態機器會判斷子系狀態機器是否使用輪詢和事件完成執行。輪詢需要 的許可events:PutRulestates:DescribeExecution而透過 EventBridge 傳送至 Step Functions 的事件需要 events:PutTargets、 和 的許可events:DescribeRule。如果您的 IAM 角色缺少這些許可,在父系狀態機器得知子系狀態機器的執行完成之前,可能會有延遲。

對於StartExecution呼叫單一巢狀工作流程執行的狀態機器,請使用 IAM 政策來限制對該狀態機器的許可。

用於呼叫巢狀 Step Functions 工作流程的 IAM 政策

對於StartExecution呼叫單一巢狀工作流程執行的狀態機器,請使用 IAM 政策來限制對該狀態機器的許可。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:StartExecution" ], "Resource": [ "arn:aws:states:[[region]]:[[accountId]]:stateMachine:[[stateMachineName]]" ] } ] }

如需詳細資訊,請參閱下列內容:

Synchronous
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:StartExecution" ], "Resource": [ "arn:aws:states:[[region]]:[[accountId]]:stateMachine:[[stateMachineName]]" ] }, { "Effect": "Allow", "Action": [ "states:DescribeExecution", "states:StopExecution" ], "Resource": [ "arn:aws:states:[[region]]:[[accountId]]:execution:[[stateMachineName]]:*" ] }, { "Effect": "Allow", "Action": [ "events:PutTargets", "events:PutRule", "events:DescribeRule" ], "Resource": [ "arn:aws:events:[[region]]:[[accountId]]:rule/StepFunctionsGetEventsForStepFunctionsExecutionRule" ] } ] }
Asynchronous
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:StartExecution" ], "Resource": [ "arn:aws:states:[[region]]:[[accountId]]:stateMachine:[[stateMachineName]]" ] } ] }
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:StartExecution" ], "Resource": [ "arn:aws:states:[[region]]:[[accountId]]:stateMachine:[[stateMachineName]]" ] }, { "Effect": "Allow", "Action": [ "states:DescribeExecution", "states:StopExecution" ], "Resource": [ "arn:aws:states:[[region]]:[[accountId]]:execution:[[stateMachineName]]:*" ] }, { "Effect": "Allow", "Action": [ "events:PutTargets", "events:PutRule", "events:DescribeRule" ], "Resource": [ "arn:aws:events:[[region]]:[[accountId]]:rule/StepFunctionsGetEventsForStepFunctionsExecutionRule" ] } ] }
所需的 ARN 類型

同步的政策中,請注意 states:StartExecution需要狀態機器 ARN,而 states:DescribeExecutionstates:StopExecution需要執行 ARN。

如果您錯誤地合併了所有三個動作,JSON 將有效,但 IAM 政策將不正確。不正確的政策可能會導致工作流程執行期間停滯的工作流程和/或存取問題。

如需巢狀工作流程執行的詳細資訊,請參閱從 Step Functions 中的任務狀態啟動工作流程執行

在本頁面

下一個主題:

保護狀態機器

上一個主題:

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