

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

# Amazon S3 conda チャネルにパッケージを発行する
<a name="publish-packages-s3-channel"></a>

Conda パッケージを Amazon Simple Storage Service (Amazon S3) バケットに発行して、Deadline Cloud (Deadline Cloud) AWS ワーカーが実行中のジョブ用にインストールできるようにします。`rattler-build publish` コマンドは、ローカルファイルシステムチャネルと同じ方法で Amazon S3 で動作します。コマンドはレシピを構築して結果を公開したり、既に構築したパッケージファイルを公開したりできます。どちらの場合も、 コマンドはパッケージをバケットにアップロードし、1 ステップでチャネルのインデックスを作成します。

`rattler-build publish` コマンドは標準の認証情報チェーン AWS を使用して で認証されるため、任意の AWS ツールのように AWS 設定を使用します。認証情報の設定の詳細については、 *AWS Command Line Interface (AWS CLI) ユーザーガイド*の[「設定と認証情報ファイルの設定](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)」を参照してください。

## 前提条件
<a name="publish-s3-prereqs"></a>

Amazon S3 にパッケージを発行する前に、以下の前提条件を満たしてください。
+ **pixi と rattler-build** – [pixi.sh](https://pixi.sh) から pixi をインストールし、 をインストールします`rattler-build`。

  ```
  pixi global install rattler-build
  ```
+ **git** – サンプルリポジトリのクローン作成に必要です。ではWindows、 [の git Windows](https://gitforwindows.org/) `bash` は、Windowsサンプルレシピの一部に必要なシェルも提供します。
+ **Amazon S3 バケット** – conda チャネルとして使用する Amazon S3 バケット。Deadline Cloud ファームのジョブアタッチメントバケットを使用するか、別のバケットを作成できます。
+ **AWS 認証情報** – `aws configure` コマンドまたは `aws login` コマンドを使用して、ワークステーションで認証情報を設定します。詳細については、*AWS Command Line Interface ユーザーガイド*の「[AWS CLIのセットアップ](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-quickstart.html)」を参照してください。
+ **IAM アクセス許可** – (オプション) 認証情報のアクセス許可の範囲を減らすには、Amazon S3 バケットと使用するチャネルプレフィックス (例: ) に対して以下のアクセス許可のみを付与する (IAM) ポリシーを使用できます AWS Identity and Access Management `/Conda/*`。
  + `s3:GetObject`
  + `s3:PutObject`
  + `s3:DeleteObject`
  + `s3:ListBucket`
  + `s3:GetBucketLocation`

## Amazon S3 チャネルへのパッケージの発行
<a name="publish-s3-procedure"></a>

`s3://` ターゲット`rattler-build publish`で を使用して、Amazon S3 conda チャネルにパッケージを発行します。チャネルがバケットに存在しない場合、 はチャネルを自動的に`rattler-build`初期化します。開始する前に、[前提条件](#publish-s3-prereqs)を満たしていることを確認してください。

次の例では、 の Deadline Cloud サンプルリポジトリから Blender 4.5 サンプルレシピを公開しますGitHub。 [https://github.com/aws-deadline/deadline-cloud-samples](https://github.com/aws-deadline/deadline-cloud-samples)サンプルリポジトリとは異なるレシピを置き換えるか、独自のレシピを使用できます。

**Amazon S3 チャネルにパッケージを発行するには**

1. Deadline Cloud サンプルリポジトリのクローンを作成します。

   ```
   git clone https://github.com/aws-deadline/deadline-cloud-samples.git
   ```

1. `conda_recipes` ディレクトリを変更します。

   ```
   cd deadline-cloud-samples/conda_recipes
   ```

1. 以下のコマンドを実行してください。*amzn-s3-demo-bucket* をバケット名に置き換えます。

   Linux と でmacOS、次のコマンドを実行します。

   ```
   rattler-build publish blender-4.5/recipe/recipe.yaml \
       --to s3://amzn-s3-demo-bucket/Conda/Default
   ```

   Windows (cmd) で、次のコマンドを実行します。

   ```
   rattler-build publish blender-4.5/recipe/recipe.yaml ^
       --to s3://amzn-s3-demo-bucket/Conda/Default
   ```

   `/Conda/Default` プレフィックスは、バケット内のチャネルを整理します。別のプレフィックスを使用できますが、プレフィックスはチャネルを参照するすべてのコマンドとキュー設定で一貫している必要があります。

更新されたパッケージを再構築して公開するには、 `--build-number=+1`を追加してビルド番号を自動的に増分します。

```
rattler-build publish blender-4.5/recipe/recipe.yaml \
    --to s3://amzn-s3-demo-bucket/Conda/Default \
    --build-number=+1
```

パッケージレシピが [conda-forge](https://conda-forge.org/) などの特定のチャネルのパッケージに依存している場合は、 コマンド`-c conda-forge`に を追加します。

ローカルビルドのファイルなど、既にビルドしたパッケージ`.conda`ファイルを発行することもできます。*amzn-s3-demo-bucket* をバケット名に置き換えます。

```
rattler-build publish output/linux-64/blender-4.5.0-hb0f4dca_0.conda \
    --to s3://amzn-s3-demo-bucket/Conda/Default
```

## パッケージのテスト
<a name="publish-s3-test"></a>

パッケージを公開したら、一時 pixi プロジェクトを作成して、パッケージが正しく動作することを確認します。プロジェクトは、Amazon S3 チャネルからパッケージをインストールします。

**パッケージをテストするには**

1. 一時的なテストディレクトリを作成し、Amazon S3 チャネルを使用して pixi プロジェクトを初期化します。*amzn-s3-demo-bucket* をバケット名に置き換えます。

   ```
   mkdir package-test-env
   cd package-test-env
   pixi init --channel s3://amzn-s3-demo-bucket/Conda/Default
   ```

1. パッケージをプロジェクトに追加します。

   ```
   pixi add blender=4.5
   ```

1. パッケージが正しく動作することを確認します。

   ```
   pixi run blender --version
   ```

## クリーンアップ
<a name="publish-s3-cleanup"></a>

テストが完了したら、テストプロジェクトディレクトリを削除します。

**テストリソースをクリーンアップするには**
+ テストプロジェクトディレクトリを削除します。

  Linux と でmacOS、次のコマンドを実行します。

  ```
  rm -rf package-test-env
  ```

  Windows (cmd) で、次のコマンドを実行します。

  ```
  rmdir /s /q package-test-env
  ```

## ビルドのデバッグ
<a name="publish-s3-debug"></a>

ビルドが失敗した場合、 は調査できるようにビルドディレクトリ`rattler-build`を保持します。次のコマンドを実行して、ビルド中のすべての環境変数をセットアップして、ビルド環境でインタラクティブシェルを開きます。

```
rattler-build debug shell
```

デバッグシェルから、ファイルの変更、個々のビルドコマンドの実行、依存関係の追加を行って問題を分離できます。詳細については、rattler-build ドキュメントの[「ビルドのデバッグ](https://rattler-build.prefix.dev/latest/debugging_builds/)」を参照してください。

## 他のプラットフォーム用のパッケージの構築
<a name="publish-s3-cross-platform"></a>

`rattler-build publish` コマンドは、コマンドを実行するワークステーションのオペレーティングシステム用のパッケージを構築します。Deadline Cloud フリートがワークステーションとは異なるオペレーティングシステムを使用している場合、またはパッケージに他のホスト要件がある場合は、次のオプションがあります。
+ ターゲットオペレーティングシステムに一致するホスト`rattler-build publish`で を実行します。たとえば、実行中の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスLinuxを使用して、Linuxフリートのパッケージを構築します。
+ Deadline Cloud パッケージ構築キューを使用して、ターゲットプラットフォームでのビルドを自動化します。[「パッケージ構築キューを作成する](automate-package-builds.md#s3-channel-create-queue)」を参照してください。
+ (アドバンスト) クロスコンパイルを使用して、ワークステーションとは異なるプラットフォームのパッケージを構築します。詳細については、rattler[-build ドキュメントの「クロスコンパイル](https://rattler-build.prefix.dev/latest/compilers/#cross-compilation)」を参照してください。

## 次の手順
<a name="publish-s3-next-steps"></a>

Amazon S3 conda チャネルにパッケージを発行したら、チャネルを使用するように Deadline Cloud キューを設定します。
+ [カスタム conda パッケージの本番稼働用キューのアクセス許可を設定する](configure-jobs-s3-channel.md#s3-channel-configure-permissions) – 本番稼働用キューに Amazon S3 conda チャネルへの読み取り専用アクセスを許可します。
+ [conda チャネルをキュー環境に追加する](configure-jobs-s3-channel.md#s3-channel-add-channel) – Amazon S3 conda チャネルからパッケージをインストールするようにキュー環境を設定します。