翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Step Functions でサービス API にパラメータを渡す
状態の管理とデータの変換
変数を使用して状態間でデータを渡す方法と、JSONata を使用してデータを変換する方法について説明します。
サービス API に渡されるパラメータを管理するには、Parameters フィールドを Task 状態で使用します。
Parameters フィールド内では、API アクションで複数形の配列パラメータを使用する必要があります。例えば、Amazon EC2 との統合に DescribeSnapshots API アクションの [フィルター] フィールドを使用する場合、Filtersフィールドをとして定義する必要があります。複数形を使用しない場合、Step Functions は次のエラーを返します。
The field Filter is not supported by Step Functions.静的 JSON をパラメータとして渡す
JSON オブジェクトをパラメータとしてリソースに渡すには、ステートマシン定義に直接含めます。
たとえば、 SubmitJob API の RetryStrategyパラメータを設定するには AWS Batch、パラメータに以下を含めることができます。
"RetryStrategy": {
  "attempts": 5
}また、静的 JSON を使用して複数のパラメータを渡すこともできます。より複雑な例として、myTopicResource フィールドおよび Parameters フィールドを以下に示します。
"Resource": "arn:aws:states:::sns:publish",
  "Parameters": {
     "TopicArn": "arn:aws:sns:us-east-2:account-id: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 オブジェクトは、ステートマシンの実行中に存在する動的 JSON データです。これにはステートマシンと現在の実行に関する情報が含まれます。状態定義の Parametersフィールドのパスを使用して、コンテキストオブジェクトにアクセスできます。
コンテキストオブジェクトと、"Parameters"フィールドからそのデータにアクセスする方法の詳細については、以下を参照してください。