

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

# S3 を使用して conda チャネルを作成する
<a name="configure-jobs-s3-channel"></a>

ジョブが [https://docs.aws.amazon.com/deadline-cloud/latest/userguide/create-queue-environment.html#conda-queue-environment](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/create-queue-environment.html#conda-queue-environment)または [https://conda-forge.org/](https://conda-forge.org/)チャネルで利用できないアプリケーションを実行する必要がある場合は、カスタム conda チャネルをホストして独自のパッケージを提供できます。 AWS Deadline Cloud (Deadline Cloud) コンソールでキューを作成すると、コンソールはデフォルトで conda キュー環境を追加します。パッケージをジョブで使用できるようにするには、カスタムチャネルをキュー環境に追加します。

conda チャネルは、ファイルシステムや Amazon Simple Storage Service (Amazon S3) バケットなど、[さまざまな](https://rattler-build.prefix.dev/latest/publish/)方法でホストできる静的ホストコンテンツです。Deadline Cloud ファームがアセットに共有ファイルシステムを使用している場合は、その任意のパスをチャネル名として使用できます。 AWS Identity and Access Management (IAM) アクセス許可を使用して、より広範なアクセスのために Amazon S3 バケットでチャネルをホストできます。

[パッケージをローカルで構築してテスト](build-test-packages-locally.md)し、[チャネルに公開](publish-packages-s3-channel.md)できます。パッケージをローカルに構築すると、インフラストラクチャのセットアップなしでパッケージビルドレシピの反復処理を簡単に開始できます。Deadline Cloud [パッケージ構築キュー](automate-package-builds.md)を使用してパッケージを構築し、チャネルに公開することもできます。パッケージ構築キューは、複数のオペレーティングシステムとアクセラレーター設定のパッケージのメンテナンスを簡素化します。バージョンを更新し、パッケージビルドの完全なセットをどこからでも送信できます。

スタジオと Deadline Cloud ファームのチャネルは、複数の方法で設定できます。1 つの Amazon S3 チャネルを持ち、それを使用するようにすべてのワークステーションとファームホストを設定できます。( AWS DataSync DataSync) を使用して、複数のチャネルとミラーリングを設定することもできます。例えば、Deadline Cloud パッケージ構築キューは、ワークステーションとオンプレミスファームホストのオンプレミスでミラーリングされる Amazon S3 チャネルに発行できます。

**Topics**
+ [パッケージをローカルでビルドおよびテストする](build-test-packages-locally.md)
+ [Amazon S3 conda チャネルにパッケージを発行する](publish-packages-s3-channel.md)
+ [カスタム conda パッケージの本番キューのアクセス許可を設定する](#s3-channel-configure-permissions)
+ [conda チャネルをキュー環境に追加する](#s3-channel-add-channel)
+ [アプリケーションまたはプラグインの conda パッケージを作成する](conda-package.md)
+ [の conda ビルドレシピを作成する Blender](create-conda-recipe-blender.md)
+ [の conda ビルドレシピを作成する Autodesk Maya](create-conda-recipe-maya.md)
+ [Autodesk Maya to Arnold (MtoA) プラグインの conda ビルドレシピを作成する](create-conda-recipe-mtoa-plugin.md)
+ [Deadline Cloud でパッケージビルドを自動化する](automate-package-builds.md)

# パッケージをローカルでビルドおよびテストする
<a name="build-test-packages-locally"></a>

Amazon S3 にパッケージを発行したり、Deadline Cloud ファームで CI/CD オートメーションを設定する前に、ローカルファイルシステムチャネルを使用してワークステーションで conda パッケージを構築およびテストできます。このアプローチにより、レシピをローカルで迅速に反復処理し、パッケージを検証できます。

`rattler-build publish` コマンドはレシピを構築し、結果のパッケージをチャネルにコピーし、1 つのステップでチャネルのインデックスを作成します。ローカルファイルシステムディレクトリをターゲットにすると、ディレクトリが存在しない場合、 によってチャネルが自動的に`rattler-build`作成および初期化されます。

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

## 前提条件
<a name="build-test-locally-prereqs"></a>

開始する前に、ワークステーションに次のツールをインストールします。
+ **pixi** – パッケージのインストール`rattler-build`とテストに使用するパッケージマネージャー。[pixi.sh](https://pixi.sh) から pixi をインストールします。
+ **rattler-build** – Deadline Cloud conda レシピで使用されるパッケージビルドツール。pixi をインストールしたら、次のコマンドを実行して をインストールします`rattler-build`。

  ```
  pixi global install rattler-build
  ```
+ **git** – サンプルリポジトリのクローン作成に必要です。ではWindows、 [の git Windows](https://gitforwindows.org/) `bash` は、Windowsサンプルレシピの一部に必要なシェルも提供します。

## パッケージの構築とローカルチャネルへの発行
<a name="build-test-locally-build"></a>

この手順では、Deadline Cloud サンプルリポジトリのクローンを作成し、 `rattler-build publish` を使用してパッケージを構築し、ローカルファイルシステムチャネルに公開します。

**パッケージを構築してローカルチャネルに公開するには**

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

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

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

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

1. 次のコマンドを実行して 4.5 Blender レシピを構築し、パッケージをローカルチャネルディレクトリに発行します。

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

   ```
   rattler-build publish blender-4.5/recipe/recipe.yaml \
       --to file://$HOME/my-conda-channel
   ```

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

   ```
   rattler-build publish blender-4.5/recipe/recipe.yaml ^
       --to file://%USERPROFILE%/my-conda-channel
   ```

   `rattler-build publish` コマンドは次のアクションを実行します。
   + レシピからパッケージを構築します。
   + ディレクトリが存在しない場合は、チャネルディレクトリを作成します。
   + パッケージファイルをチャネルにコピーします。
   + チャネルのインデックスを作成して、パッケージマネージャーがパッケージを検索できるようにします。

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

レシピを変更した後にパッケージを再構築するには、 `--build-number=+1`を追加してビルド番号を自動的に増分します。

```
rattler-build publish blender-4.5/recipe/recipe.yaml \
    --to file://$HOME/my-conda-channel \
    --build-number=+1
```

の詳細については`rattler-build publish`、[rattler-build 公開ドキュメント](https://rattler-build.prefix.dev/latest/publish/)を参照してください。

## ビルドのデバッグ
<a name="build-test-locally-debug"></a>

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

```
rattler-build debug shell
```

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

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

パッケージを構築して公開したら、一時的な pixi プロジェクトを作成します。プロジェクトを使用してローカルチャネルからパッケージをインストールし、正しく動作することを確認します。

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

1. 一時テストディレクトリを作成し、ローカルチャネルを使用して pixi プロジェクトを初期化します。

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

   ```
   mkdir package-test-env
   cd package-test-env
   pixi init --channel file://$HOME/my-conda-channel
   ```

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

   ```
   mkdir package-test-env
   cd package-test-env
   pixi init --channel file://%USERPROFILE%/my-conda-channel
   ```

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

   ```
   pixi add blender=4.5
   ```

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

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

パッケージに満足したら、Deadline Cloud ワーカーがパッケージをインストールできるように、パッケージを Amazon S3 conda チャネルに発行できます。「パッケージを [S3 conda チャネルに発行する](publish-packages-s3-channel.md)」を参照してください。

## クリーンアップ
<a name="build-test-locally-cleanup"></a>

テスト後、テストプロジェクトとローカルチャネルを削除できます。

**テストリソースをクリーンアップするには**

1. テストプロジェクトディレクトリを削除します。

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

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

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

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

1. ローカル conda チャネルディレクトリを削除します。

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

   ```
   rm -rf $HOME/my-conda-channel
   ```

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

   ```
   rmdir /s /q %USERPROFILE%\my-conda-channel
   ```

1. (オプション) ビルドされたパッケージファイルを含む`rattler-build`出力ディレクトリを削除します。

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

   ```
   rm -rf deadline-cloud-samples/conda_recipes/output
   ```

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

   ```
   rmdir /s /q deadline-cloud-samples\conda_recipes\output
   ```

# 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 チャネルからパッケージをインストールするようにキュー環境を設定します。

## カスタム conda パッケージの本番キューのアクセス許可を設定する
<a name="s3-channel-configure-permissions"></a>

本番キューには、キューの S3 バケットの `/Conda` プレフィックスへの読み取り専用アクセス許可が必要です。本番キューに関連付けられたロールの AWS Identity and Access Management (IAM) ページを開き、以下を使用してポリシーを変更します。

1. Deadline Cloud コンソールを開き、パッケージビルドキューのキューの詳細ページに移動します。

1. キューサービスロールを選択し、**キューの編集**を選択します。

1. **キューサービスロール**セクションまでスクロールし、**IAM コンソールでこのロールを表示する**を選択します。

1. アクセス許可ポリシーのリストから、キューの **AmazonDeadlineCloudQueuePolicy** を選択します。

1. アクセス**許可**タブから、**編集** を選択します。

1. 次のような新しいセクションをキューサービスロールに追加します。*amzn-s3-demo-bucket* と *111122223333* を独自のバケットとアカウントに置き換えます。

   ```
   {
      "Effect": "Allow",
      "Sid": "CustomCondaChannelReadOnly",
      "Action": [
       "s3:GetObject",
       "s3:ListBucket"
      ],
      "Resource": [
       "arn:aws:s3:::amzn-s3-demo-bucket",
       "arn:aws:s3:::amzn-s3-demo-bucket/Conda/*"
      ],
      "Condition": {
       "StringEquals": {
        "aws:ResourceAccount": "111122223333"
       }
      }
     },
   ```

## conda チャネルをキュー環境に追加する
<a name="s3-channel-add-channel"></a>

S3 conda チャネルを使用するには、Deadline Cloud に送信するジョブの `CondaChannels`パラメータに`s3://amzn-s3-demo-bucket/Conda/Default`チャネルの場所を追加する必要があります。Deadline Cloud で提供される送信者は、カスタム conda チャネルとパッケージを指定するフィールドを提供します。

本番キューの conda キュー環境を編集することで、すべてのジョブの変更を回避できます。次の手順に従ってください。

1. Deadline Cloud コンソールを開き、本番キューのキューの詳細ページに移動します。

1. 環境タブを選択します。

1. **Conda **キュー環境を選択し、**編集**を選択します。

1. **JSON エディタ**を選択し、スクリプトで のパラメータ定義を見つけます`CondaChannels`。

1. 新しく作成した S3 conda チャネルで始まる`default: "deadline-cloud"`ように行を編集します。

   ```
   default: "s3://amzn-s3-demo-bucket/Conda/Default deadline-cloud"
   ```

サービスマネージドフリートは、デフォルトで conda の柔軟なチャネル優先度を有効にします。Blender 4.2 が新しいチャネルと`deadline-cloud`チャネルの両方にある`blender=4.2`かどうかをリクエストするジョブの場合、パッケージはチャネルリストの最初のチャネルからプルされます。指定されたパッケージバージョンが最初のチャネルで見つからない場合、後続のチャネルはパッケージバージョンの順にチェックされます。

カスタマーマネージドフリートの場合、Deadline Cloud サンプルGitHubリポジトリの conda [キュー環境サンプルのいずれかを使用して、conda](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/queue_environments/README.md) パッケージの使用を有効にできます。

# アプリケーションまたはプラグインの conda パッケージを作成する
<a name="conda-package"></a>

conda パッケージは、任意の言語で記述されたソフトウェアの圧縮アーカイブです。Conda はさまざまなオペレーティングシステムとアーキテクチャの組み合わせをサポートしているため、Blender、Maya、 などの完全なアプリケーションを Python やその他の言語用のライブラリNukeとともにパッケージ化できます。conda パッケージの詳細については、conda ドキュメントの[「パッケージ](https://docs.conda.io/projects/conda/en/latest/user-guide/concepts/packages.html)」を参照してください。

conda パッケージを使用するには、仮想環境にインストールします。conda 仮想環境には、パッケージがインストールされている*プレフィックスディレクトリ*があります。パッケージのインストールでは、サポートされている場合にファイルのハードリンクまたは再リンクを使用するため、同じパッケージで複数の環境を作成しても、ディスク容量が大幅に増えることはありません。仮想環境を使用するには、仮想環境をアクティブ化して環境変数を設定します。アクティベーションは、パッケージが提供するスクリプトを実行し、各パッケージに PATH やその他の環境変数を変更する機会を与えます。Conda パッケージには通常アプリケーションまたはライブラリが含まれていますが、柔軟なアクティベーションにより、共有ファイルシステムにインストールされているアプリケーションを指すこともできます。

カスタムパッケージの作成には 3 つの段階があります。1 つの*レシピ*にはビルド手順が含まれており、1 つの*パッケージ*はビルドされたアーティファクト (`.conda` または `.tar.bz2` ファイル) であり、1 つの*チャネル*はインストール用のパッケージをホストします。`rattler-build publish` コマンドは 3 つのステップをすべて処理します。レシピをパッケージに構築してチャネルに発行することも、パッケージアーティファクトを直接使用して公開することもできます。

[conda-forge](https://conda-forge.org/) コミュニティは、さまざまなオープンソースソフトウェアのパッケージレシピを維持し、パッケージアーティファクトを`conda-forge`チャネルでホストします。をパッケージソース`conda-forge`として含めるようにキューを設定し、実行する conda-forge パッケージに依存するカスタムパッケージを構築できます。の場合Linux、conda-forge は CUDA サポートを含む完全なコンパイラツールチェーンをホストし、一貫したコンパイルとリンクのオプションが選択されます。conda-forge パッケージを独自のレシピの依存関係として使用したり、同じ環境のカスタムパッケージと一緒にインストールしたりできます。

依存関係を含むアプリケーション全体を conda パッケージに結合できます。Deadline Cloud がサービスマネージドフリートの[期限クラウドチャネル](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/create-queue-environment.html#conda-queue-environment)で提供するパッケージは、このバイナリ再パッケージ化アプローチを使用します。これにより、conda 仮想環境に合わせてインストールと同じファイルが整理されます。

**注記**  
大規模なアプリケーションでは、ソースアーカイブ、抽出されたファイル、ビルド出力に数十 GB の空きディスク容量が必要になる場合があります。パッケージビルド出力に十分な空き容量があるディスクを使用していることを確認してください。

## アプリケーションをパッケージ化する
<a name="conda-package-application"></a>

conda のアプリケーションを再パッケージ化する場合、次の 2 つの目標があります。
+ アプリケーションのほとんどのファイルは、プライマリ conda 仮想環境構造とは別にする必要があります。その後、環境はアプリケーションを [conda-forge](https://conda-forge.org/) などの他のソースのパッケージと混在させることができます。
+ conda 仮想環境がアクティブ化されると、アプリケーションは PATH 環境変数から使用可能になります。

**conda のアプリケーションを再パッケージ化するには**

1. アプリケーションをインストールする conda ビルドレシピを などのサブディレクトリに書き込みます`$CONDA_PREFIX/opt/<application-name>`。これにより、 `bin`や などの標準プレフィックスディレクトリから分離されます`lib`。

1. シンボリックリンクまたは起動スクリプトを に追加`$CONDA_PREFIX/bin`して、アプリケーションバイナリを実行します。

   または、`conda activate`コマンドが実行する activate.d スクリプトを作成して、アプリケーションバイナリディレクトリを PATH に追加します。シンボリックリンクがサポートされていない ではWindows、環境を作成できるすべての場所で、代わりにアプリケーションの起動または activate.d スクリプトを使用します。

1. 一部のアプリケーションは、Deadline Cloud のサービスマネージドフリートにデフォルトでインストールされていないライブラリに依存します。たとえば、通常、X11 ウィンドウシステムは非インタラクティブジョブには必要ありませんが、一部のアプリケーションではグラフィカルインターフェイスなしで実行する必要があります。これらの依存関係は、作成するパッケージ内で指定する必要があります。

1. アプリケーションがプラグインをサポートしている場合は、プラグインパッケージが仮想環境でアプリケーションと統合するために従うべき明確な規則を指定します。たとえば、[Maya2026 サンプルレシピ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/maya-2026#instructions-for-maya-plugin-packages)は、この規則をMayaプラグインに文書化しています。

1. パッケージ化するアプリケーションの著作権およびライセンス契約に従ってください。ディストリビューションを制御し、ファームへのパッケージアクセスを制限するには、conda チャネルにプライベート Amazon S3 バケットを使用することをお勧めします。

`deadline-cloud` チャネル内のパッケージのサンプルレシピは、 の [Deadline Cloud サンプル](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes#readme)リポジトリで入手できますGitHub。

## プラグインをパッケージ化する
<a name="conda-package-plugins"></a>

アプリケーションプラグインは、独自の conda パッケージとしてパッケージ化できます。プラグインパッケージを作成するときは、次のガイドラインに従ってください。
+ ビルドレシピ に、ビルドと実行の両方の依存関係としてホストアプリケーションパッケージを含めます`recipe.yaml`。バージョン制約を使用して、ビルドレシピが互換性のあるパッケージでのみインストールされるようにします。
+ プラグインを登録するには、ホストアプリケーションパッケージの規則に従います。

## アダプターパッケージ
<a name="conda-package-adaptors"></a>

一部の Deadline Cloud アプリケーション統合では、アプリケーションインターフェイスを拡張する*アダプター*を使用して、[ジョブテンプレートの記述](building-jobs.md)を簡素化します。アダプターは、バックグラウンドデーモンの実行、ステータスのレポート、パスマッピングの適用をサポートするコマンドラインインターフェイスです。詳細については、「」の[「Open Job Description Adaptor Runtime](https://github.com/OpenJobDescription/openjd-adaptor-runtime-for-python#readme)」を参照してくださいGitHub。例えば、 の [deadline-cloud-for-maya](https://github.com/aws-deadline/deadline-cloud-for-maya/) GitHubには、統合されたジョブ送信 GUI と、サービスマネージドフリートの`maya-openjd`パッケージとして利用可能なMayaアダプターが含まれています。

Deadline Cloud 送信者 GUIs からのジョブ送信には、ジョブを実行するための仮想環境に含める conda パッケージを指定する`CondaPackages`パラメータ値が含まれています。の`CondaPackages`パラメータ値Mayaは通常 `maya=2025.* maya-openjd=0.15.* maya-mtoa`のようになります。プラグインパッケージの代替エントリが含まれている場合があります。キュー環境がジョブを実行するための conda 仮想環境を設定すると、これらのパッケージ名とバージョンの制約が互換性があるように解決され、実行に必要なすべての依存関係パッケージが追加されます。各アダプターとプラグインパッケージは、 のバージョン、Python のバージョンMaya、その他の依存関係など、互換性のあるものを指定します。

の [maya-openjd レシピ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/maya-openjd)などのサンプルを使用して独自のアダプターパッケージを構築するにはGitHub、[conda-forge](https://conda-forge.org/) が提供する Python やその他の依存関係用のパッケージをビルドできます。依存関係を満たすには、まず[期限](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/deadline)と [openjd-adaptor-runtime](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/openjd-adaptor-runtime) レシピを構築する必要があります。

# の conda ビルドレシピを作成する Blender
<a name="create-conda-recipe-blender"></a>

さまざまなアプリケーションを使用して conda ビルドレシピを作成できます。 Blenderは無料で使用でき、conda で簡単にパッケージ化できます。Blender Foundation は、複数のオペレーティングシステム用の[アプリケーションアーカイブ](https://download.blender.org/release/Blender4.2/)を提供します。Windows .zip ファイルと Linux .tar.xz ファイルを使用する conda ビルドレシピのサンプルを作成しました。このセクションでは、[Blender4.2 conda ビルドレシピ](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/blender-4.2)を使用する方法について説明します。

[ deadline-cloud.yaml](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/blender-4.2) ファイルは、パッケージジョブを Deadline Cloud に送信するための conda プラットフォームおよびその他のメタデータを指定します。このレシピには、その仕組みを示すローカルソースアーカイブ情報が含まれています。linux-64 conda プラットフォームは、最も一般的な設定と一致するように、デフォルトのジョブ送信でビルドするように設定されています。deadline-cloud.yaml は次のようになります。

```
condaPlatforms:
  - platform: linux-64
    defaultSubmit: true
    sourceArchiveFilename: blender-4.2.1-linux-x64.tar.xz
    sourceDownloadInstructions: 'Run "curl -LO https://download.blender.org/release/Blender4.2/blender-4.2.1-linux-x64.tar.xz"'
  - platform: win-64
    defaultSubmit: false
    sourceArchiveFilename: blender-4.2.1-windows-x64.zip
    sourceDownloadInstructions: 'Run "curl -LO https://download.blender.org/release/Blender4.2/blender-4.2.1-windows-x64.zip"'
```

`recipe` ディレクトリ内のファイルを確認します。レシピのメタデータは [ recipe/recipe.yaml](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/blender-4.2/recipe/recipe.yaml) にあります。ファイルが YAML を生成するテンプレートである方法など、詳細については、conda build [meta.yaml](https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html) ドキュメントも参照してください。テンプレートは、バージョン番号を 1 回だけ指定し、オペレーティングシステムに基づいて異なる値を提供するために使用されます。

で選択したビルドオプションを確認して`meta.yaml`、さまざまなバイナリ再配置と動的共有オブジェクト (DSO) リンクチェックをオフにできます。これらのオプションは、パッケージが任意のディレクトリプレフィックスの conda 仮想環境にインストールされた場合の動作を制御します。デフォルト値は、すべての依存関係ライブラリを別のパッケージにパッケージ化することを簡素化しますが、バイナリでアプリケーションを再パッケージ化する場合は、それらを変更する必要があります。

パッケージ化しているアプリケーションに追加の依存関係ライブラリが必要な場合、またはアプリケーションのプラグインを個別にパッケージ化している場合、DSO エラーが発生する可能性があります。これらのエラーは、依存関係が実行ファイルまたはそれを必要とするライブラリのライブラリ検索パスにない場合に発生します。アプリケーションは、システムにインストール`/usr/lib`されたときに、 `/lib`や などのグローバルに定義されたパスにあるライブラリに依存します。ただし、conda 仮想環境はどこにでも配置できるため、絶対的なパスはありません。Conda は、 Linuxと の両方macOSがサポートする相対的な RPATH 機能を使用してこれを処理します。詳細については、[パッケージの再配置](https://docs.conda.io/projects/conda-build/en/latest/resources/make-relocatable.html)に関する conda ビルドドキュメントを参照してください。

Blender アプリケーションアーカイブはこれを念頭に置いて構築されているため、 は RPATH の調整を必要としません。これを必要とするアプリケーションの場合、conda ビルドと同じツールを使用できます。Linux `patchelf`では 、 `install_name_tool` では ですmacOS。

パッケージのビルド中に、[build.sh](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/blender-4.2/recipe/build.sh) または [build\$1win.sh](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/blender-4.2/recipe/build_win.sh) ( で呼び出されます`bld.bat`) スクリプトが実行され、パッケージの依存関係で準備された環境にファイルがインストールされます。これらのスクリプトは、インストールファイルをコピーし、 からシンボリックリンクを作成し`$PREFIX/bin`、アクティベーションスクリプトを設定します。ではWindows、シンボリックリンクは作成されず、代わりにアクティベーションスクリプトの PATH に Blender ディレクトリを追加します。

conda ビルドレシピWindowsの一部には `cmd.exe` .bat ファイル`bash`の代わりに を使用します。これにより、ビルドスクリプト間の一貫性が向上します。`bash` での の使用に関するヒントについては、[Deadline Cloud 開発者ガイドの](https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/what-is-a-deadline-cloud-workload.html#workload-portability)ワークロードの移植性に関する推奨事項を参照してくださいWindows。[git for Windows](https://gitforwindows.org/) をインストールして [deadline-cloud-samples](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/) git リポジトリのクローンを作成している場合は、既に にアクセスできます`bash`。

[ conda ビルド環境変数](https://docs.conda.io/projects/conda-build/en/latest/user-guide/environment-variables.html)のドキュメントには、ビルドスクリプトで使用できる値が一覧表示されています。これらの値には、ソースアーカイブデータ`$SRC_DIR`、`$PREFIX`インストールディレクトリ、レシピからの他のファイル`$RECIPE_DIR`へのアクセス、`$PKG_NAME``$PKG_VERSION`パッケージ名とバージョン、ターゲット conda プラットフォーム`$target_platform`が含まれます。

## 4.2 Blender パッケージジョブを送信する
<a name="s3-channel-build-blender"></a>

Blender アーカイブをダウンロードし、パッケージ構築キューにジョブを送信することで、独自の Blender 4.2 conda パッケージを構築してジョブをレンダリングできます。キューは、関連付けられたフリートにジョブを送信してパッケージを構築し、conda チャネルのインデックスを再作成します。

これらの手順では、bash 互換シェルの git を使用して、[Deadline Cloud サンプルGitHubリポジトリ](https://github.com/aws-deadline/deadline-cloud-samples)から OpenJD パッケージビルドジョブといくつかの conda レシピを取得します。また、以下も必要になります:
+ を使用している場合はWindows、git のインストール時に bash のバージョン git BASH がインストールされます。
+ [Deadline Cloud CLI ](https://github.com/aws-deadline/deadline-cloud)がインストールされている必要があります。
+ [Deadline Cloud モニター](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/working-with-deadline-monitor.html)にログインする必要があります。

1. 次のコマンドを使用して Deadline Cloud 設定 GUI を開き、デフォルトのファームとキューをパッケージ構築キューに設定します。

   ```
   deadline config gui
   ```

1. 次のコマンドを使用して、Deadline Cloud サンプルGitHUbリポジトリのクローンを作成します。

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

1. ディレクトリの `deadline-cloud-samples` ディレクトリに変更`conda_recipes`します。

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

1. というスクリプトを実行します`submit-package-job`。このスクリプトには、スクリプトBlenderを初めて実行するときにダウンロードする手順が記載されています。

   ```
   ./submit-package-job blender-4.2/
   ```

1. をダウンロードする手順に従いますBlender。アーカイブを取得したら、`submit-package-job`スクリプトを再度実行します。

   ```
   ./submit-package-job blender-4.2/
   ```

ジョブを送信したら、Deadline Cloud モニターを使用して、実行中のジョブの進行状況とステータスを表示します。

モニタの左下には、ジョブの 2 つのステップが表示されます。パッケージを構築し、インデックスを再作成します。右下には、各タスクの個々のステップが表示されます。この例では、タスクごとに 1 つのステップがあります。

![\[Blender パッケージを構築するジョブの進行状況とステータスを示す Deadline Cloud モニター。\]](http://docs.aws.amazon.com/ja_jp/deadline-cloud/latest/developerguide/images/Conda-Figure3.png)


モニタの左下には、ジョブの 2 つのステップがあります。パッケージを構築し、conda チャネルのインデックスを再作成します。右下には、各ステップの個々のタスクが表示されます。この例では、ステップごとに 1 つのタスクしかありません。

パッケージ構築ステップのタスクを右クリックし、**ログの表示**を選択すると、タスクがワーカーでどのようにスケジュールされているかを示すセッションアクションのリストがモニタに表示されます。アクションは次のとおりです。
+ **アタッチメントの同期** – このアクションは、ジョブアタッチメントファイルシステムに使用される設定に応じて、入力ジョブアタッチメントをコピーするか、仮想ファイルシステムをマウントします。
+ **Launch Conda** – このアクションは、キューの作成時にデフォルトで追加されたキュー環境からのものです。ジョブは conda パッケージを指定しないため、すぐに終了し、conda 仮想環境は作成されません。
+ **CondaBuild Env を起動**する – このアクションは、conda パッケージを構築し、チャネルのインデックスを再作成するために必要なソフトウェアを含むカスタム conda 仮想環境を作成します。[conda-forge](https://conda-forge.org/) チャネルからインストールされます。
+ **タスク実行** – このアクションはBlenderパッケージを構築し、結果を Amazon S3 にアップロードします。

アクションが実行されると、構造化された形式でログが Amazon CloudWatch に送信されます。ジョブが完了したら、**すべてのタスクのログを表示**を選択して、ジョブが実行される環境のセットアップと削除に関する追加のログを表示します。

# 4.2 Blender レンダリングジョブでパッケージをテストする
<a name="s3-channel-submit-job"></a>

Blender 4.2 パッケージを構築し、S3 conda チャネルを使用するように本番キューを設定したら、ジョブを送信してパッケージでレンダリングできます。Blender シーンがない場合は、[Blenderデモファイル](https://www.blender.org/download/demo-files)ページから Blender 3.5 - コージーキッチンシーンをダウンロードします。

先ほどダウンロードした Deadline Cloud サンプルGitHubリポジトリには、次のコマンドを使用してBlenderシーンをレンダリングするサンプルジョブが含まれています。

```
deadline bundle submit blender_render \
     -p CondaPackages=blender=4.2 \
     -p BlenderSceneFile=/path/to/downloaded/blender-3.5-splash.blend \
     -p Frames=1
```

Deadline Cloud モニターを使用して、ジョブの進行状況を追跡できます。

1. モニタで、送信したジョブのタスクを選択し、ログを表示するオプションを選択します。

1. ログビューの右側で、**Launch Conda** セッションアクションを選択します。

アクションがキュー環境用に設定された 2 つの conda チャネルで Blender 4.2 を検索し、S3 チャネルでパッケージが見つかったことがわかります。

# の conda ビルドレシピを作成する Autodesk Maya
<a name="create-conda-recipe-maya"></a>

商用アプリケーションを conda パッケージとしてパッケージ化できます。[ の conda ビルドレシピを作成するBlender](https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/conda-package.html#create-conda-recipe-blender)では、シンプルな再配置可能なアーカイブファイルとして、オープンソースのライセンス条項の下で利用可能なアプリケーションをパッケージ化する方法を学習しました。商用アプリケーションは多くの場合、インストーラを介して配布され、使用するライセンス管理システムがある場合があります。

次のリストは、商用アプリケーションのパッケージングに一般的に関連する要件を持つアプリケーション[またはプラグインの conda パッケージを作成する](https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/conda-package.html)で説明されている基本に基づいています。サブ箇条書きの詳細は、ガイドラインを に適用する方法を示していますMaya。
+ アプリケーションのライセンス権限と制限を理解します。ライセンス管理システムの設定が必要になる場合があります。アプリケーションに強制が含まれていない場合は、権限に従ってファームを設定する必要があります。
  + [Autodesk Cloud Rights に関するサブスクリプション特典に関するよくある質問](https://www.autodesk.com/support/technical/article/caas/sfdcarticles/sfdcarticles/Subscription-Benefits-FAQ-Cloud-Rights.html)をお読みになり、 が適用されるMaya可能性のある のクラウド権限を理解してください。必要に応じて Deadline Cloud ファームを設定します。
  + Autodesk 製品は、 という名前のファイルに依存しています`ProductInformation.pit`。このファイルのほとんどの設定には、 システムへの管理者アクセスが必要です。これは、サービスマネージドフリートでは利用できません。シンクライアントの製品機能は、これを処理する再配置可能な方法を提供します。詳細については、[「Maya および MotionBuilder のシンクライアントライセンス](https://www.autodesk.com/support/technical/article/caas/tsarticles/ts/2zqRBCuGDrcPZDzULJQ27p.html)」を参照してください。
+ 一部のアプリケーションは、サービスマネージドフリートワーカーホストにインストールされていないライブラリに依存するため、パッケージで提供する必要があります。これは、アプリケーションパッケージ内に直接配置することも、別の依存関係パッケージに配置することもできます。
  + Maya は、Freetype や fontconfig など、このようなライブラリの数に依存します。これらのライブラリが AL2023 `dnf`の など、システムパッケージマネージャーで使用できる場合は、アプリケーションのソースとして使用できます。これらの RPM パッケージは再配置できるように構築されていないため、 などのツールを使用して`patchelf`、Mayaインストールプレフィックス内で依存関係が解決されるようにする必要があります。
+ インストールには管理者アクセスが必要になる場合があります。サービスマネージドフリートは管理者アクセスを提供しないため、このアクセスを持つシステムでインストールを実行する必要があります。次に、パッケージビルドジョブが使用するのに必要なファイルのアーカイブを作成します。
  + のWindowsインストーラには管理者アクセスMayaが必要なため、conda パッケージを構築するには、まずこのようなアーカイブを作成する手動プロセスが必要です。
+ プラグインの登録方法を含むアプリケーション設定は、オペレーティングシステムまたはユーザーレベルで定義できます。conda 仮想環境に配置する場合、プラグインは、含まれている方法でアプリケーションと統合する必要があり、仮想環境プレフィックスの外部にファイルやその他のデータを書き込むことはありません。これは、アプリケーションの conda パッケージから設定することをお勧めします。
  + サンプルMayaパッケージは、環境変数を定義`MAYA_NO_HOME=1`してユーザーレベルの設定から分離し、モジュール検索パスを に追加`MAYA_MODULE_PATH`して、個別にパッケージ化されたプラグインを仮想環境内から統合できるようにします。サンプルMtoAパッケージは、Maya起動時にロードするこれらのディレクトリのいずれかに .mod ファイルを配置します。

**レシピメタデータを記述する**

1. ブラウザまたはリポジトリのローカルクローンのテキストエディタで GitHub [ deadline-cloud-samples/conda\$1recipes/maya-2025](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/maya-2025) ディレクトリを開きます。

   ファイルは、 のパッケージを構築する conda ビルドプラットフォームと、アプリケーションを取得する場所を`deadline-cloud.yaml`記述します。レシピサンプルは、 Linuxビルドと Windowsビルドの両方を指定し、デフォルトでLinuxのみ送信されます。

1. Autodesk ログインから完全なMayaインストーラをダウンロードします。の場合Linux、パッケージビルドはアーカイブを直接使用できるため、`conda_recipes/archive_files`ディレクトリに直接配置します。の場合Windows、インストーラを実行するには管理者アクセスが必要です。インストーラを実行し、使用するパッケージレシピのアーカイブに必要なファイルを収集する必要があります。レシピの [ README.md](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-2025/README.md) ファイルは、このアーティファクトを作成するための繰り返し可能な手順を文書化します。この手順では、新しく起動した Amazon EC2 インスタンスを使用してインストール用のクリーンな環境を提供し、その結果を保存した後に終了できます。管理者アクセスを必要とする他のアプリケーションをパッケージ化するには、アプリケーションが必要とするファイルのセットを決定したら、同様の手順に従います。

1. [ recipe/recipe.yaml](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-2025/recipe/recipe.yaml) ファイルと [ recipe/meta.yaml](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-2025/recipe/meta.yaml) ファイルを開き、rattler-build と conda-build の設定を確認または編集します。パッケージ化するアプリケーションのパッケージ名とバージョンを設定できます。

   **ソース**セクションには、ファイルの sha256 ハッシュを含むアーカイブへの参照が含まれています。これらのファイルを新しいバージョンなどに変更するたびに、これらの値を計算して更新する必要があります。

   **ビルド**セクションには、パッケージが使用する特定のライブラリおよびバイナリディレクトリに対して自動メカニズムが正しく機能しないため、デフォルトのバイナリ再配置オプションを無効にするオプションが主に含まれています。

   最後に、 **about** セクションでは、conda チャネルのコンテンツを参照または処理するときに使用できるアプリケーションに関するメタデータを入力できます。

**パッケージビルドスクリプトを記述する**

1. Maya サンプル conda ビルドレシピのパッケージビルドスクリプトには、スクリプトが実行するステップを説明するコメントが含まれています。コメントとコマンドを読んで、以下を確認してください。
   + レシピが から RPM ファイルを処理する方法 Autodesk
   + レシピがインストール先である conda 仮想環境にインストールを再配置できるようにするために適用される変更
   + レシピが などのユーティリティ変数を設定する方法`MAYA_LOCATION`と、ソフトウェア`MAYA_VERSION`が実行中の を理解するために使用できる Maya 。

1. で Linuxrecipe[/build.sh](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-2025/recipe/build.sh) ファイルを開き、パッケージビルドスクリプトを確認または編集します。

   で Windowsrecipe[/build\$1win.sh](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-2025/recipe/build_win.sh) ファイルを開き、パッケージビルドスクリプトを確認または編集します。

**Maya パッケージを構築するジョブを送信する**

1. GitHub [deadline-cloud-samples](https://github.com/aws-deadline/deadline-cloud-samples) リポジトリのクローンに `conda_recipes` ディレクトリを入力します。

1. Deadline Cloud ファームが Deadline Cloud CLI 用に設定されていることを確認します。[ Amazon S3 を使用して conda チャネルを作成するステップに従った場合は](https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/configure-jobs-s3-channel.html)、CLI 用にファームを設定する必要があります。

1. 次のコマンドを実行して、 パッケージLinuxと Windowsパッケージの両方を構築するジョブを送信します。

   ` ./submit-package-job maya-2025 --all-platforms`

# Autodesk Maya to Arnold (MtoA) プラグインの conda ビルドレシピを作成する
<a name="create-conda-recipe-mtoa-plugin"></a>

商用アプリケーション用のプラグインを conda パッケージとしてパッケージ化できます。プラグインは、アプリケーションが提供するアプリケーションバイナリインターフェイス (ABI) を使用してそのアプリケーションの機能を拡張する動的にロードされたライブラリです。Maya to Arnold (MtoA) プラグインは、Arnoldレンダラーを 内のオプションとして追加しますMaya。
+ MtoA サンプルビルドレシピは**Maya**パッケージに依存し、 バージョンの`==`制約を使用します。
+ Maya パッケージは、プラグインが`.mod`ファイルを配置するために`$PREFIX/usr/autodesk/maya$MAYA_VERSION/modules`、仮想環境のMayaモジュールパス を設定します。MtoA サンプルビルドレシピは、このディレクトリ`mtoa.mod`にファイルを作成します。

**レシピメタデータを記述する**

1. ブラウザまたはリポジトリのローカルクローンのテキストエディタで GitHub [ deadline-cloud-samples/conda\$1recipes/maya-mtoa-2025](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/maya-mtoa-2025) ディレクトリを開きます。

   レシピは Maya conda ビルドレシピと同じパターンに従い、同じソースアーカイブを使用してプラグインをインストールします。

1. [ recipe/recipe.yaml](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-mtoa-2025/recipe/recipe.yaml) ファイルと [ recipe/meta.yaml](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-mtoa-2025/recipe/meta.yaml) ファイルを開き、rattler-build と conda-build の設定を確認または編集します。これらのファイルは、パッケージの構築`maya`時とプラグインを実行する仮想環境の作成時に への依存関係を指定します。

**パッケージビルドスクリプトを記述する**
+ MtoA サンプル conda ビルドレシピのパッケージビルドスクリプトには、スクリプトが実行するステップを説明するコメントが含まれています。コメントとコマンドを読み、レシピがMayaパッケージで指定されたディレクトリ`mtoa.mod`にファイルをインストールMtoAして作成する方法について説明します。

  Arnold と は同じライセンス技術Mayaを使用するため、Mayaconda ビルドレシピにはすでに が必要とする情報が含まれていますArnold。

  Linux とWindowsビルドスクリプトの違いは、Mayaconda ビルドレシピの違いと似ています。

**Maya MtoA プラグインパッケージを構築するジョブを送信する**

1. GitHub [deadline-cloud-samples](https://github.com/aws-deadline/deadline-cloud-samples) リポジトリのクローンに `conda_recipes` ディレクトリを入力します。

1. 前のセクションでMayaホストアプリケーションのパッケージを構築したことを確認します。

1. Deadline Cloud ファームが Deadline Cloud CLI 用に設定されていることを確認します。[ Amazon S3 を使用して conda チャネルを作成するステップに従った場合は](https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/configure-jobs-s3-channel.html)、CLI 用にファームを設定する必要があります。

1. 次のコマンドを実行して、 パッケージLinuxと Windowsパッケージの両方を構築するジョブを送信します。

   ` ./submit-package-job maya-mtoa-2025 --all-platforms`

# Maya レンダージョブを使用してパッケージをテストする
<a name="submit-render-maya-mtoa"></a>

2025 パッケージと Maya MtoAパッケージを構築したら、 パッケージでレンダリングするジョブを送信できます。ジョブバンドルのサンプル[を含むターンテーブルMaya/Arnold](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/turntable_with_maya_arnold)は、 Mayaおよび を含むアニメーションをレンダリングしますArnold。このサンプルでは、FFmpeg を使用して動画をエンコードします。conda-forge チャネルを `CondaChannels` conda キュー環境のデフォルトリストに追加して、`ffmpeg`パッケージのソースを提供できます。

deadline[deadline-cloud-samples](https://github.com/aws-deadline/deadline-cloud-samples) の git クローンの`job_bundles`ディレクトリから、次のコマンドを実行します。

```
deadline bundle submit turntable_with_maya_arnold
```

Deadline Cloud モニターを使用して、ジョブの進行状況を追跡できます。

1. モニターで、送信したジョブのタスクを選択し、ログを表示するオプションを選択します。

1. ログビューの右側で、**Launch Conda** セッションアクションを選択します。

アクションがキュー環境用に設定された conda チャネルmaya-mtoaで mayaと を検索し、S3 チャネルでパッケージを見つけたことを確認できます。

# Deadline Cloud でパッケージビルドを自動化する
<a name="automate-package-builds"></a>

CI/CD ワークフローの場合、または複数のオペレーティングシステムのパッケージを構築する必要がある場合は、Deadline Cloud パッケージ構築キューを作成できます。キューはフリートでビルドジョブをスケジュールし、パッケージをビルドして Amazon Simple Storage Service (Amazon S3) conda チャネルに発行します。これにより、必要なすべての設定でソフトウェアリリースの継続的なパッケージビルドの維持が簡素化されます。

( AWS CloudFormation CloudFormation) テンプレートを使用するか、Deadline Cloud コンソールから手動でパッケージ構築キューを作成できます。 CloudFormation テンプレートは、本番稼働用キューとパッケージ構築キューが既に設定されている完全なファームをデプロイします。コンソールからキューを作成すると、個々の設定をより詳細に制御できます。

## を使用してパッケージ構築キューを作成する CloudFormation
<a name="s3-channel-create-queue-cfn"></a>

 CloudFormation テンプレートを使用して、パッケージ構築キューを含む Deadline Cloud ファームを作成できます。テンプレートは、プライベート Amazon S3 conda チャネルを使用して、本稼働キューとパッケージ構築キューを設定します。

テンプレートをデプロイする前に、ジョブアタッチメントと conda チャネルを保持する Amazon S3 バケットを作成します。[Amazon S3 コンソール](https://console.aws.amazon.com/s3/)からバケットを作成できます。テンプレートをデプロイするときは、バケット名が必要です。

**CloudFormation テンプレートをデプロイするには**

1. の [Deadline Cloud サンプル](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/cloudformation/farm_templates/starter_farm)リポジトリから [deadline-cloud-starter-farm-template.yaml](https://github.com/aws-deadline/deadline-cloud-samples/raw/mainline/cloudformation/farm_templates/starter_farm/deadline-cloud-starter-farm-template.yaml) テンプレートをダウンロードしますGitHub。

1. [CloudFormation コンソール](https://console.aws.amazon.com/cloudformation/)から、**スタックの作成**を選択し、新しい**リソース (標準) **を使用します。

1. テンプレートファイルをアップロードするオプションを選択し、`deadline-cloud-starter-farm-template.yaml`ファイルをアップロードします。

1. などのスタックの名前を入力し**StarterFarm**、ジョブアタッチメントと conda チャネルの Amazon S3 バケットの名前を指定します。

1.  CloudFormation コンソールの手順に従って、スタックの作成を完了します。

テンプレートパラメータとカスタマイズオプションの詳細については、 の Deadline Cloud サンプルリポジトリの[スターターファーム README](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/cloudformation/farm_templates/starter_farm) を参照してくださいGitHub。

## コンソールからパッケージ構築キューを作成する
<a name="s3-channel-create-queue"></a>

*Deadline Cloud ユーザーガイド*の[「キューの作成](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/create-queue.html)」の手順に従います。以下の変更を加えます。
+ ステップ 5 で、既存の Amazon S3 バケットを選択します。ビルドアーティファクトが通常の Deadline Cloud アタッチメントとは別のまま**DeadlineCloudPackageBuild**になるように、 などのルートフォルダ名を指定します。
+ ステップ 6 では、パッケージ構築キューを既存のフリートに関連付けるか、現在のフリートが適切でない場合はまったく新しいフリートを作成できます。
+ ステップ 9 で、パッケージ構築キューの新しいサービスロールを作成します。アクセス許可を変更して、パッケージのアップロードと conda チャネルのインデックス再作成に必要なアクセス許可をキューに付与します。

### パッケージ構築キューのアクセス許可を設定する
<a name="package-building-queue-permissions"></a>

パッケージ構築キューがキューの Amazon S3 バケット内の`/Conda`プレフィックスにアクセスできるようにするには、キューのロールを変更して読み取り/書き込みアクセスを許可する必要があります。このロールには、パッケージビルドジョブが新しいパッケージをアップロードし、チャネルのインデックスを再作成できるように、次のアクセス許可が必要です。
+ `s3:GetObject`
+ `s3:PutObject`
+ `s3:ListBucket`
+ `s3:GetBucketLocation`
+ `s3:DeleteObject`

1. Deadline Cloud コンソールを開き、パッケージビルドキューのキューの詳細ページに移動します。

1. キューサービスロールを選択し、**キューの編集**を選択します。

1. **キューサービスロール**セクションまでスクロールし、**IAM コンソールでこのロールを表示する**を選択します。

1. アクセス許可ポリシーのリストから、キューの **AmazonDeadlineCloudQueuePolicy** を選択します。

1. アクセス**許可**タブで、**編集** を選択します。

1. 次のような新しいセクションをキューサービスロールに追加します。*amzn-s3-demo-bucket* と *111122223333* を独自のバケットとアカウントに置き換えます。

   ```
   {
      "Effect": "Allow",
      "Sid": "CustomCondaChannelReadWrite",
      "Action": [
       "s3:GetObject",
       "s3:PutObject",
       "s3:DeleteObject",
       "s3:ListBucket",
       "s3:GetBucketLocation"
      ],
      "Resource": [
       "arn:aws:s3:::amzn-s3-demo-bucket",
       "arn:aws:s3:::amzn-s3-demo-bucket/Conda/*"
      ],
      "Condition": {
       "StringEquals": {
        "aws:ResourceAccount": "111122223333"
       }
      }
     },
   ```

## パッケージビルドジョブを送信する
<a name="automate-submit-package-job"></a>

パッケージ構築キューを作成し、キューのアクセス許可を設定したら、ジョブを送信して conda パッケージを構築できます。の [Deadline Cloud サンプル](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes#readme)リポジトリの`submit-package-job`スクリプトは、conda レシピのビルドジョブGitHubを送信します。

また、以下も必要になります。
+ ワークステーションにインストールされている [Deadline Cloud CLI](https://github.com/aws-deadline/deadline-cloud)。
+ アクティブな [AWS Deadline Cloud Monitor (Deadline Cloud Monitor)](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/working-with-deadline-monitor.html) ログインセッション。
+ [Deadline Cloud サンプル](https://github.com/aws-deadline/deadline-cloud-samples)リポジトリのクローン。

**パッケージビルドジョブを送信するには**

1. Deadline Cloud 設定 GUI を開き、デフォルトのファームとキューをパッケージ構築キューに設定します。

   ```
   deadline config gui
   ```

1. サンプルリポジトリの `conda_recipes` ディレクトリに変更します。

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

1. レシピディレクトリを使用して`submit-package-job`スクリプトを実行します。次の例では、4.5 Blender レシピを構築します。

   ```
   ./submit-package-job blender-4.5/
   ```

   レシピにまだダウンロードしていないソースアーカイブが必要な場合、スクリプトはダウンロード手順を提供します。アーカイブをダウンロードし、スクリプトを再度実行します。

ジョブを送信したら、Deadline Cloud モニターを使用してジョブの進行状況とステータスを表示します。

![\[Conda パッケージを構築するジョブの進行状況とステータスを示す Deadline Cloud モニター。\]](http://docs.aws.amazon.com/ja_jp/deadline-cloud/latest/developerguide/images/Conda-Figure3.png)


モニターには、パッケージの構築と conda チャネルのインデックス再作成の 2 つのステップが表示されます。パッケージ構築ステップのタスクを右クリックし、**ログの表示**を選択すると、モニターにセッションアクションが表示されます。
+ **アタッチメントの同期** – 入力ジョブアタッチメントをコピーするか、仮想ファイルシステムをマウントします。
+ **Launch Conda** – キュー環境アクション。ビルドジョブは conda パッケージを指定しないため、このアクションはすぐに終了します。
+ **CondaBuild Env の起動** – conda パッケージを構築し、チャネルのインデックスを再作成するために必要なソフトウェアを使用して conda 仮想環境を作成します。
+ **タスク実行** – パッケージを構築し、結果を Amazon S3 にアップロードします。

アクションを実行すると、Amazon CloudWatch (CloudWatch) にログが送信されます。ジョブが完了したら、**すべてのタスクのログを表示**を選択して、環境の設定と削除に関する追加のログを表示します。