AWS Step Functions
開発者ガイド

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

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

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

JSON オブジェクトをパラメータとしてリソースに渡すには、ステートマシン定義に直接含めます。たとえば、SubmitJob API の RetryStrategy パラメータを 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", "MessageStructure": "json", "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 のパラメータの使用の詳細については、以下を参照してください。

注記

Amazon ステートメント言語 から制御可能なサービスのリストについては、「Step Functions でサポートされる AWS サービス統合」を参照してください。