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

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

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

状態の管理とデータの変換

Step Functions は最近、状態を管理し、データを変換JSONataするために変数 と を追加しました。

変数を使用したデータの受け渡しを使用したデータの変換JSONataについて説明します。

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

Parameters フィールド内では、APIアクションで配列パラメータの複数形式を使用する必要があります。例えば、Amazon と統合するために DescribeSnapshotsAPIアクションの Filter フィールドを使用する場合はEC2、フィールドを として定義する必要がありますFilters。複数形を使用しない場合、Step Functions は次のエラーを返します。

The field Filter is not supported by Step Functions.

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

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

たとえば、 の RetryStrategyパラメータを設定するにはSubmitJobAPI 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"フィールドからそのデータにアクセスする方法の詳細については、以下を参照してください。