

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

# ステップ間でデータを渡す
<a name="build-and-manage-propertyfile"></a>

Amazon SageMaker Pipelines を使用してパイプラインを構築する場合は、あるステップから次のステップにデータを渡す必要がある場合があります。例えば、トレーニングステップが生成したモデルアーティファクトをモデル評価ステップまたはデプロイステップへの入力として使用する必要がある場合があります。この機能を使用すると、相互依存パイプラインステップを作成して、ML ワークフローを構築できます。

パイプラインステップの出力から情報を取得する必要がある場合は、`JsonGet` を使用できます。`JsonGet` は、Amazon S3 またはプロパティファイルから情報を抽出するのに役立ちます。以降のセクションでは、`JsonGet` を使用してステップ出力を抽出するために利用できる方法について説明します。

## Amazon S3 を使用してステップ間でデータを渡す
<a name="build-and-manage-propertyfile-s3"></a>

`ConditionStep` で `JsonGet` を使用すると、Amazon S3 から直接 JSON 出力を取得できます。Amazon S3 URI は、プリミティブ文字列、パイプライン実行変数、またはパイプラインパラメータを含む `Std:Join` 関数にすることができます。以下の例は、`ConditionStep` で `JsonGet` を使用する方法を説明しています。

```
# Example json file in s3 bucket generated by a processing_step
{
   "Output": [5, 10]
}

cond_lte = ConditionLessThanOrEqualTo(
    left=JsonGet(
        step_name="{{<step-name>}}",
        s3_uri="{{<s3-path-to-json>}}",
        json_path="Output[1]"
    ),
    right=6.0
)
```

条件ステップで Amazon S3 パスを使用して `JsonGet` を使用する場合は、条件ステップと JSON 出力を生成するステップの間に依存関係を明示的に追加する必要があります。次の例では、条件ステップが処理ステップへの依存関係を持つように作成されています。

```
cond_step = ConditionStep(
        name="{{<step-name>}}",
        conditions=[cond_lte],
        if_steps=[fail_step],
        else_steps=[register_model_step],
        depends_on=[processing_step],
)
```

## プロパティファイルを使用してステップ間でデータを渡す
<a name="build-and-manage-propertyfile-property"></a>

プロパティファイルを使用して、処理ステップの出力の情報を保存します。これは、処理ステップの結果を分析して、条件ステップの実行方法を決定するために特に便利です。`JsonGet` 関数はプロパティファイルを処理し、JsonPath 表記を使用してプロパティ JSON ファイルをクエリできるようにします。JsonPath 表記の詳細については、「[JsonPath リポジトリ](https://github.com/json-path/JsonPath)」を参照してください。

後で使用できるようにプロパティファイルを保存するには、最初に `PropertyFile` インスタンスを以下の形式で作成する必要があります。`path` パラメータは、プロパティファイルが保存される JSON ファイルの名前です。いずれの `output_name` も、処理ステップで定義した `ProcessingOutput` の `output_name` と一致する必要があります。これにより、ステップの `ProcessingOutput` をプロパティファイルでキャプチャできるようになります。

```
from sagemaker.workflow.properties import PropertyFile

{{<property_file_instance>}} = PropertyFile(
    name="{{<property_file_name>}}",
    output_name="{{<processingoutput_output_name>}}",
    path="{{<path_to_json_file>}}"
)
```

`ProcessingStep` インスタンスを作成する際に、`property_files` パラメータを追加して、Amazon SageMaker Pipelines サービスがインデックスを作成する必要があるすべてのパラメータファイルをリストします。これにより、プロパティファイルが保存され、後で使用できるようになります。

```
property_files=[{{<property_file_instance>}}]
```

条件ステップでプロパティファイルを使用するには、次の例に示すように、条件ステップに渡す条件に `property_file` を追加し、`json_path` パラメータを使用して JSON ファイルで目的のプロパティをクエリします。

```
cond_lte = ConditionLessThanOrEqualTo(
    left=JsonGet(
        step_name=step_eval.name,
        property_file={{<property_file_instance>}},
        json_path="mse"
    ),
    right=6.0
)
```

より詳細な例については、「[Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable)」の「[Property File](https://sagemaker.readthedocs.io/en/stable/amazon_sagemaker_model_building_pipeline.html#property-file)」を参照してください。**