

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

# Step Functions の入力および出力処理
<a name="concepts-input-output-filtering"></a>

**変数と JSONata によるステート管理**  
Step Functions では最近、ステート管理とデータ変換のために変数と JSONata が追加されました。  
詳細については、ブログ記事[「Simplifying developer experience with variables and JSONata in AWS Step Functions](https://aws.amazon.com/blogs/compute/simplifying-developer-experience-with-variables-and-jsonata-in-aws-step-functions/)」を参照してください。

Step Functions の実行が JSON 入力を受け取ると、そのデータはワークフローの最初のステートに入力として渡されます。

JSONata では、`$states.input` からステートの入力を取得できます。ステートマシンの実行は、その初期入力データも [コンテキストオブジェクト](input-output-contextobject.md) で提供します。ワークフローのどの時点でも、`$states.context.Execution.Input` から元のステートマシンの入力を取得できます。

 ステートが終了すると、その出力はステートマシン内の*直後の*ステートで使用できるようになります。ステートの出力を**変更**しない限り、ステートの入力はデフォルトでステートの出力として引き継がれます。後続のステップで必要になる可能性のあるデータは、変数に保存することを検討してください。詳細については、[変数を使用したステート間のデータ受け渡し](workflow-variables.md) を参照してください。

**QueryLanguage に関する推奨事項**  
新しいステートマシンには JSONata クエリ言語の使用をお勧めします。クエリ言語を指定しないステートマシンでは、下位互換性のために JSONPath がデフォルトで使用されます。ステートマシンや個々のステートで JSONata を使用するには、明示的に設定する必要があります。

**JSONata を使用した入出力の処理**

JSONata 式を使用すると、データを選択して変換できます。`Arguments` フィールドで、アクションに送信するデータをカスタマイズできます。`Output` フィールドで、結果をカスタムのステートの出力に変換できます。`Assign` フィールドで、データを変数に保存することもできます。詳細については、「[JSONata を使用したデータ変換](transforming-data.md)」を参照してください。

次の図では、JSON 情報が JSONata タスクステートをどのように遷移するかを示しています。

![\[Diagram showing JSONata task state flow with input, arguments, output, and action components.\]](http://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/images/vars-jsonata.png)


**JSONPath を使用した入出力の処理**

**ステートの管理とデータの変換**  
[変数を使用したステート間のデータ受け渡し](workflow-variables.md)と [JSONata を使用したデータ変換](transforming-data.md)について説明します。

JSONPath を使用するステートマシンでは、`InputPath`、`Parameters`、`ResultSelector`、`ResultPath`、および `OutputPath` フィールドがステート間のデータフローを制御します。各 JSONPath フィールドで、ワークフローの各ステートを遷移するように JSON を操作します。

JSONPath フィールドで[パス](amazon-states-language-paths.md)を使用して、入力または結果から JSON の部分を選択できます。パスは `$` で始まる文字列です。これを使用して、JSON テキスト内でノードを識別します。Step Functions パスは [JsonPath](https://datatracker.ietf.org/wg/jsonpath/about/) 構文を使用します。

次の図では、JSON 情報が JSONPath タスクステートをどのように遷移するかを示しています。は、 `Task`状態のタスク ( AWS Lambda関数など) に渡す JSON 入力の部分`InputPath`を選択します。`Parameters` フィールドで、アクションに送信するデータを調整できます。その後、`ResultSelector` は、アクション結果の一部を選択して、次に渡すことができます。`ResultPath` は、ステートの入力とタスクの結果の組み合わせを選択して、出力に渡します。`OutputPath` は、JSON 出力をフィルタリングして、出力に渡される情報をさらに制限できます。

![\[フィルターの順序: InputPath、Parameters、ResultSelector、ResultPath、および OutputPath。\]](http://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/images/vars-jsonpath.png)


**Topics**
+ [変数を使用したステート間のデータ受け渡し](workflow-variables.md)
+ [Step Functions での JSONata を使用したデータ変換](transforming-data.md)
+ [Step Functions の Context オブジェクトから実行データにアクセスする](input-output-contextobject.md)
+ [JSONPath パスの使用](amazon-states-language-paths.md)
+ [Step Functions ワークフロー内でパラメータを操作する](input-output-inputpath-params.md)
+ [例: Step Functions ワークフローでパスを使用したステートデータの操作](input-output-example.md)
+ [Step Functions で ResultPath を使用してステートの出力を指定する](input-output-resultpath.md)
+ [Step Functions で状態入力および出力フィールドをマッピングする](input-output-fields-dist-map.md)