サービス API にパラメータを渡す - AWS Step Functions

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

サービス API にパラメータを渡す

サービス API に渡されるパラメータを管理するには、"Parameters" フィールドを Task 状態で使用します。

静的 JSON をパラメータとして渡す

JSON オブジェクトをパラメータとしてリソースに渡すには、ステートマシン定義に直接含めます。

例えば、RetryStrategy API の SubmitJob パラメータを AWS Batch 用に設定するには、次のようにパラメータに含めます。

"RetryStrategy": { "attempts": 5 }

また、静的 JSON を使用して複数のパラメータを渡すこともできます。より複雑な例として、Amazon SNS トピックを 発行するタスクの仕様の "Resource" フィールドおよび "Parameters" フィールドを以下に示します。

"Resource": "arn:aws:states:::sns:publish", "Parameters": { "TopicArn": "arn:aws:sns:us-east-1: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 構文を使用します。

パラメータでパスを使用して入力内の JSON ノードを参照するように指定するには、パラメータ名の末尾を .$ で終了します。例えば、message という名前のノードに状態入力のテキストがある場合、そのパスで入力 JSON を参照することでパラメータに渡すことができます。

次の状態入力を使用します。

{ "comment": "A message in the state input", "input": { "message": "foo", "otherInfo": "bar" }, "data": "example" }

次のようにして、メッセージ foo をパラメータとして渡すことができます。

"Parameters": {"Message.$": "$.input.message"},

Step Functions のパラメータの使用の詳細については、以下を参照してください。

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

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

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