

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

# ランタイム依存関係用のプライベートリポジトリ
<a name="train-remote-decorator-private"></a>

実行前コマンドまたはスクリプトを使用すると、ジョブ環境で pip や conda などの依存関係マネージャを設定できます。ネットワーク分離を実現するには、これらのオプションのいずれかを使用して依存関係マネージャをリダイレクトし、プライベートリポジトリにアクセスして、VPC 内のリモート関数を実行します。実行前のコマンドまたはスクリプトは、リモート関数が実行される前に実行されます。これらのコマンドまたはスクリプトは、@remote デコレータまたは `RemoteExecutor` API を使用するか、設定ファイル内で定義できます。

以下のセクションでは、 で管理されているプライベート Python パッケージインデックス (PyPI) リポジトリにアクセスする方法を示します AWS CodeArtifact。また、このセクションでは、Amazon Simple Storage Service (Amazon S3) でホストされているカスタム conda チャネルにアクセスする方法についても説明します。

## AWS CodeArtifact で管理されるカスタム PyPI リポジトリの使用方法
<a name="train-remote-decorator-private-pypi"></a>

CodeArtifact を使用してカスタム PyPI リポジトリを管理する前提条件として、以下が必要です。
+ プライベート PyPI リポジトリが作成済みである必要があります。 AWS CodeArtifact を使用して、プライベートパッケージリポジトリを作成および管理できます。CodeArtifact の詳細については、『[CodeArtifact ユーザーガイド](https://docs.aws.amazon.com/codeartifact/latest/ug/welcome.html)』を参照してください。
+ VPC が CodeArtifact リポジトリにアクセスできる必要があります。VPC から CodeArtifact リポジトリへの接続を許可するには、以下を実行する必要があります。
  + [CodeArtifact 用の VPC エンドポイントを作成する。](https://docs.aws.amazon.com/codeartifact/latest/ug/create-vpc-endpoints.html)
  + [VPC 用の Amazon S3 ゲートウェイエンドポイントを作成する](https://docs.aws.amazon.com/codeartifact/latest/ug/create-s3-gateway-endpoint.html)。これにより、CodeArtifact ではパッケージアセットを保存できるようになります。

以下の実行前コマンドの例は、SageMaker AI トレーニングジョブの pip が CodeArtifact リポジトリを指すように設定する方法を示しています。詳細については、「[Configure and use pip with CodeArtifact](https://docs.aws.amazon.com/codeartifact/latest/ug/python-configure-pip.html)」を参照してください。

```
# use a requirements.txt file to import dependencies
@remote(
    instance_type="ml.m5.large"
    image_uri = "my_base_python:latest", 
    dependencies = './requirements.txt',
    pre_execution_commands=[
        "aws codeartifact login --tool pip --domain my-org --domain-owner <000000000000> --repository my-codeartifact-python-repo --endpoint-url https://vpce-xxxxx.api.codeartifact.us-east-1.vpce.amazonaws.com"
    ]
)
def matrix_multiply(a, b):
    return np.matmul(a, b)
```

## Amazon S3 でホストされているカスタム conda チャネルを使用する方法
<a name="train-remote-decorator-private-conda"></a>

Amazon S3 を使用してカスタム conda リポジトリを管理する前提条件として、以下が必要です。
+ プライベート conda チャネルが Amazon S3 バケットであらかじめ設定され、すべての依存パッケージはインデックスが作成されて Amazon S3 バケットにアップロードされている必要があります。conda パッケージのインデックスを作成する方法については、「[カスタムチャネルの作成](https://conda.io/projects/conda/en/latest/user-guide/tasks/create-custom-channels.html)」を参照してください。
+ VPC が Amazon S3 バケットにアクセスできる必要があります。詳細については、[Amazon S3 のエンドポイント](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-endpoints-s3.html)を参照してください。
+ ジョブイメージの Base Conda 環境に `boto3` がインストールされている必要があります。環境を確認するには、Anaconda プロンプトに次のように入力して、生成されたリストに `boto3` が表示されることを確認します。

  ```
  conda list -n base
  ```
+ ジョブイメージは [mamba](https://mamba.readthedocs.io/en/latest/installation.html) ではなく conda を使用してインストールする必要があります。環境を確認するには、前のコードプロンプトによって `mamba` が返されないことを確認します。

以下の実行前コマンドの例は、SageMaker トレーニングジョブの conda が Amazon S3 のプライベートチャンネルを指すように設定する方法を示しています。実行前コマンドは、デフォルトチャンネルを削除し、カスタムチャンネルを `.condarc` conda 設定ファイルに追加します。

```
# specify your dependencies inside a conda yaml file
@remote(
    instance_type="ml.m5.large"
    image_uri = "my_base_python:latest", 
    dependencies = "./environment.yml",
    pre_execution_commands=[
        "conda config --remove channels 'defaults'"
        "conda config --add channels 's3://my_bucket/my-conda-repository/conda-forge/'",
        "conda config --add channels 's3://my_bucket/my-conda-repository/main/'"
    ]
)
def matrix_multiply(a, b):
    return np.matmul(a, b)
```