本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將參數傳遞給 Step Functions 數API中的服務
使用狀Task
態中的Parameters
欄位來控制要傳遞給服務的參數API。
在Parameters
欄位內,您必須在API動作中使用陣列參數的複數形式。例如,如果您使用DescribeSnapshots
API動作的「篩選器」欄位與 Amazon 整合EC2,則必須將欄位定義為Filters
。如果您不使用複數形式,Step Functions 會傳回下列錯誤:
The field Filter is not supported by Step Functions.
將靜態JSON作為參數傳遞
您可以直接在狀態機定義中包含一個JSON對象,以作為參數傳遞給資源。
例如,若要設定的RetryStrategy
SubmitJob
API參數 AWS Batch,您可以在參數中包含以下內容。
"RetryStrategy": {
"attempts": 5
}
您也可以使用靜態傳遞多個參數JSON。作為更完整的範例,以下是發佈到 Amazon SNS 主題的任務規格的Resource
和Parameters
欄位
。myTopic
"Resource": "arn:aws:states:::sns:publish",
"Parameters": {
"TopicArn": "arn:aws:sns:us-east-2:123456789012:myTopic
",
"Message": "test message",
"MessageAttributes": {
"my attribute no 1": {
"DataType": "String",
"StringValue": "value of my attribute no 1"
},
"my attribute no 2": {
"DataType": "String",
"StringValue": "value of my attribute no 2"
}
}
},
使用路徑將狀態輸入作為參數傳遞
您可以使用路徑將狀態輸入的部分作為參數傳遞。路徑是一個字符串,以開頭$
,用於標識JSON文本中的組件。Step Functions 路徑使用JsonPath
若要指定參數使用路徑,請以結束參數名稱.$
。例如,如果您的狀態輸入包含名為的節點內的文字message
,您可以使用路徑將該文字當做參數傳遞。
考慮下面的狀態輸入:
{
"comment": "A message in the state input",
"input": {
"message": "foo",
"otherInfo": "bar"
},
"data": "example"
}
要傳遞命名message
為參數的節點的值myMessage
,請指定以下語法:
"Parameters": {"myMessage.$": "$.input.message"},
Step Functions 數然後將值foo
作為參數傳遞。
如需有關在 Step Functions 數中使用參數的詳細資訊,請參閱下列內容:
依參數方式傳遞內容物件節點
除了靜態內容和來自狀態輸入的節點,您還可以依參數方式來傳遞內容物件的節點。上下文對象是在狀態機執行期間存在的動態JSON數據。它包含有關您的狀態機器和目前執行的資訊。您可以使用狀態定義之 "Parameters"
欄位的路徑,存取內容物件。
如需關於內容物件及如何存取 "Parameters"
欄位資料的詳細資訊,請參閱下列: