Step Functions APIのサービスへのパラメータの受け渡し - AWS Step Functions

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Step Functions APIのサービスへのパラメータの受け渡し

Task 状態の Parametersフィールドを使用して、サービス に渡されるパラメータを制御しますAPI。

Parameters フィールド内では、 APIアクションで配列パラメータの複数形式を使用する必要があります。例えば、Amazon と統合するために DescribeSnapshotsAPIアクションの 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 のパラメータの使用の詳細については、以下を参照してください。

コンテキストオブジェクトノードをパラメータとして渡す

静的コンテンツおよび状態の入力からのノードに加えて、コンテキストオブジェクトからノードをパラメータとして渡すことができます。コンテキストオブジェクトは、ステートマシンの実行中に存在する動的JSONデータです。これにはステートマシンと現在の実行に関する情報が含まれます。コンテキストオブジェクトにアクセスするには、状態の定義の "Parameters" フィールド内のパスを使用できます。

コンテキストオブジェクトに関する詳細と "Parameters" フィールドからデータにアクセスする方法については、次を参照してください。