翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Step Functions APIのサービスへのパラメータの受け渡し
状態の管理とデータの変換
Step Functions は最近、状態を管理し、データを変換JSONataするために変数 と を追加しました。
変数を使用したデータの受け渡しと を使用したデータの変換JSONataについて説明します。
Task
状態の Parameters
フィールドを使用して、サービス に渡されるパラメータを制御しますAPI。
Parameters
フィールド内では、APIアクションで配列パラメータの複数形式を使用する必要があります。例えば、Amazon と統合するために DescribeSnapshots
APIアクションの Filter フィールドを使用する場合は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 のパラメータの使用の詳細については、以下を参照してください。
Context オブジェクトノードをパラメータとして渡す
静的コンテンツと状態入力からのノードに加えて、Context オブジェクトからノードをパラメータとして渡すことができます。Context オブジェクトは、ステートマシンの実行中に存在する動的JSONデータです。これにはステートマシンと現在の実行に関する情報が含まれます。Context オブジェクトには、状態定義の Parameters
フィールドのパスを使用してアクセスできます。
Context オブジェクトと、"Parameters"
フィールドからそのデータにアクセスする方法の詳細については、以下を参照してください。