

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

# ジョブにアプリケーションを提供する
<a name="provide-applications"></a>

キュー環境を使用して、ジョブを処理するアプリケーションをロードできます。Deadline Cloud コンソールを使用してサービスマネージドフリートを作成する場合、conda パッケージマネージャーを使用してアプリケーションをロードするキュー環境を作成するオプションがあります。

別のパッケージマネージャーを使用する場合は、そのマネージャーのキュー環境を作成できます。Rez の使用例については、「」を参照してください[別のパッケージマネージャーを使用する](#provide-applications-other-package)。

Deadline Cloud は、選択したレンダリングアプリケーションを環境にロードするための conda チャネルを提供します。Deadline Cloud がデジタルコンテンツ作成アプリケーションに提供する送信者をサポートします。

ジョブで使用する conda-forge 用のソフトウェアをロードすることもできます。次の例は、Deadline Cloud が提供するキュー環境を使用してジョブを実行する前にアプリケーションをロードするジョブテンプレートを示しています。

**Topics**
+ [conda チャネルからアプリケーションを取得する](#provide-applications-get-application)
+ [別のパッケージマネージャーを使用する](#provide-applications-other-package)
+ [Python 専用パッケージに pip を使用する](#provide-applications-pip)

## conda チャネルからアプリケーションを取得する
<a name="provide-applications-get-application"></a>

選択したソフトウェアをインストールする Deadline Cloud ワーカーのカスタムキュー環境を作成できます。このサンプルキュー環境の動作は、 コンソールでサービスマネージドフリートに使用される環境と同じです。conda を直接実行して環境を作成します。

環境は、ワーカーで実行される Deadline Cloud セッションごとに新しい conda 仮想環境を作成し、完了すると環境を削除します。

Conda はダウンロードしたパッケージをキャッシュするため、再度ダウンロードする必要はありませんが、各セッションではすべてのパッケージを環境にリンクする必要があります。

環境は、Deadline Cloud がワーカーでセッションを開始するときに実行される 3 つのスクリプトを定義します。最初のスクリプトは、`onEnter`アクションが呼び出されたときに実行されます。他の 2 つを呼び出して環境変数を設定します。スクリプトの実行が完了すると、指定されたすべての環境変数が設定された conda 環境を使用できます。

この例の最新バージョンについては、GitHub の [deadline-cloud-samples](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline) リポジトリの [conda\_queue\_env\_console\_equivalent.yaml](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/queue_environments/conda_queue_env_console_equivalent.yaml) を参照してください。

conda チャネルで使用できないアプリケーションを使用する場合は、Amazon S3 で conda チャネルを作成し、そのアプリケーション用に独自のパッケージを構築できます。詳細については、「[S3 を使用して conda チャネルを作成する](configure-jobs-s3-channel.md)」を参照してください。

### conda-forge からオープンソースライブラリを取得する
<a name="get-application-csv-example"></a>

このセクションでは、`conda-forge`チャネルからオープンソースライブラリを使用する方法について説明します。次の例は、Python `polars` パッケージを使用するジョブテンプレートです。

ジョブは、パッケージを取得する場所を Deadline Cloud に指示するキュー環境で定義された `CondaPackages`および `CondaChannels`パラメータを設定します。

パラメータを設定するジョブテンプレートの セクションは次のとおりです。

```
- name: CondaPackages
  description: A list of conda packages to install. The job expects a Queue Environment to handle this.
  type: STRING
  default: polars
- name: CondaChannels
  description: A list of conda channels to get packages from. The job expects a Queue Environment to handle this.
  type: STRING
  default: conda-forge
```

ジョブテンプレートの完全な例の最新バージョンについては、[「stage\_1\_self\_contained\_template/template.yaml](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/job_bundles/job_dev_progression/stage_1_self_contained_template/template.yaml)」を参照してください。conda パッケージをロードするキュー環境の最新バージョンについては、GitHub の [deadline-cloud-samples](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline) リポジトリの [conda\_queue\_env\_console\_equivalent.yaml](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/queue_environments/conda_queue_env_console_equivalent.yaml) を参照してください。

### 期限クラウドチャネルBlenderから取得する
<a name="get-application-blender"></a>

次の例は、`deadline-cloud`conda チャネルBlenderから取得するジョブテンプレートを示しています。このチャネルは、Deadline Cloud がデジタルコンテンツ作成ソフトウェアに提供する送信者をサポートしますが、同じチャネルを使用して独自の使用のためにソフトウェアをロードできます。

`deadline-cloud` チャネルによって提供されるソフトウェアのリストについては、*AWS 「Deadline Cloud ユーザーガイド*」の[「デフォルトキュー環境](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/create-queue-environment.html#conda-queue-environment)」を参照してください。

このジョブは、キュー環境で定義された `CondaPackages`パラメータを設定して、環境にロードするように Deadline Cloud Blenderに指示します。

パラメータを設定するジョブテンプレートの セクションは次のとおりです。

```
- name: CondaPackages
  type: STRING
  userInterface:
    control: LINE_EDIT
    label: Conda Packages
    groupLabel: Software Environment
  default: blender
  description: >
    Tells the queue environment to install Blender from the deadline-cloud conda channel.
```

ジョブテンプレートの完全な例の最新バージョンについては、[「Blender\_render/template.yaml](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/job_bundles/blender_render/template.yaml)」を参照してください。conda パッケージをロードするキュー環境の最新バージョンについては、 の [deadline-cloud-samples](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline) リポジトリの [conda\_queue\_env\_console\_equivalent.yaml](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/queue_environments/conda_queue_env_console_equivalent.yaml) を参照してくださいGitHub。

## 別のパッケージマネージャーを使用する
<a name="provide-applications-other-package"></a>

Deadline Cloud のデフォルトのパッケージマネージャーは conda です。などの別のパッケージマネージャーを使用する必要がある場合はRez、代わりにパッケージマネージャーを使用するスクリプトを含むカスタムキュー環境を作成できます。

このサンプルキュー環境は、サービスマネージドフリートのコンソールで使用される環境と同じ動作を提供します。conda パッケージマネージャーを に置き換えますRez。

環境は、Deadline Cloud がワーカーでセッションを開始するときに実行される 3 つのスクリプトを定義します。最初のスクリプトは、`onEnter`アクションが呼び出されたときに実行されます。他の 2 つを呼び出して環境変数を設定します。スクリプトの実行が完了すると、Rez環境は指定されたすべての環境変数セットで使用できます。

この例では、Rez パッケージに共有ファイルシステムを使用するカスタマーマネージドフリートがあることを前提としています。

この例の最新バージョンについては、 の [deadline-cloud-samples](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline) リポジトリの [rez\_queue\_env.yaml](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/queue_environments/rez_queue_env.yaml) を参照してくださいGitHub。

## Python 専用パッケージに pip を使用する
<a name="provide-applications-pip"></a>

ジョブに必要なアプリケーションまたはライブラリが PyPI で利用可能な純粋な Python パッケージである場合は、conda または の代わりに pip と Python 標準ライブラリ`venv`モジュールを使用できますRez。このアプローチは、パッケージが conda チャネルに公開されていない場合、または conda が作成するよりも小さな仮想環境が必要な場合に適しています。conda や とは異なりRez、pip と `venv`は Python 自体に含まれているため、ワーカーホストに必要なのは `python3` のインタープリタのみです`PATH`。Deadline Cloud サービスマネージドフリートは 1 つを提供します。

ジョブが `PipPackages`パラメータを設定し、リクエストされたパッケージを pip でインストールしてアクティブ化すると、 はセッション作業ディレクトリに Python 仮想環境[Deadline Cloud の Pip キュー環境](examples-queue-env-pip.md)を作成します。これにより、ジョブのステップが使用可能なパッケージで実行されます。環境はセッション作業ディレクトリに作成されるため、セッションが終了すると Deadline Cloud によって自動的にクリーンアップされるため、独自のクリーンアップロジックを記述する必要はありません。ジョブが を設定しない場合`PipPackages`、キュー環境は何もしないため、使用していないジョブも実行するキューに追加できます。

パブリック PyPI インデックスの代わりに [AWS CodeArtifact](https://docs.aws.amazon.com/codeartifact/latest/ug/welcome.html) リポジトリなどのプライベートインデックスからパッケージをインストールするには、キュー環境が提供する `PipIndexUrl`および `PipExtraIndexUrls`パラメータを設定します。

キュー環境を設定しない場合は、代わりにジョブバンドルで同じ pip 環境をインラインで定義できます。各アプローチの例については、 の [deadline-cloud-samples](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline) リポジトリの [pip\_package\_job](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/pip_package_job) および [pip\_self\_contained\_job](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/pip_self_contained_job) ジョブバンドルを参照してくださいGitHub。

本番キューの場合、毎回最新のリリースをインストールするのではなく、 `PipPackages`パラメータ値にパッケージバージョンを固定します。バージョンピン留めは、再現可能な環境を提供し、パッケージが新しいバージョンを発行する際の予期しない破損を回避します。ジョブが一致する送信者バージョンとアダプターバージョンに依存している場合は、両方を同じリリースに固定します。

カスタマーマネージドフリートワーカーが複数のデジタルコンテンツ作成 (DCC) アプリケーションのジョブを実行し、pip で Deadline Cloud アダプターをインストールする場合は、各アダプターを独自の仮想環境にインストールします。同じ仮想環境に複数のアダプターを一緒にインストールすると、pip が共有依存関係をいずれかのアダプターと競合するバージョンに解決する可能性があります。

ワーカーホストは、セッションの開始時にパッケージをインストールするために、PyPI やプライベートミラーなどのパッケージソースへのネットワークアクセスが必要です。カスタマーマネージドフリートワーカーがインターネットアクセスのないプライベートサブネットで実行されている場合は、代わりにパッケージソースへの VPC エンドポイント、プライベート pip ミラーを使用するか、ワーカー AMI にパッケージをインストールします。

次の表は、使用するパッケージマネージャーの選択に役立つ各パッケージマネージャーのトレードオフをまとめたものです。


| パッケージマネージャー | 次の用途に適しています | トレードオフ | 
| --- | --- | --- | 
| Conda (デフォルト) | DCC アプリケーション、複雑なネイティブ依存関係、クロスプラットフォームパッケージ | より大きな環境。パッケージは conda チャネルに発行する必要があります | 
| Rez | 既存のRezインフラストラクチャを持つ Studio パイプライン | ワーカーホストとパッケージリポジトリの共有ファイルシステムにRezインストールする必要があります | 
| Pip | Python 専用パッケージ、PyPI がホストするライブラリ、軽量インストール | Python パッケージに限定。ネイティブ依存関係解決なし | 

キュー環境を選択したら、キューにアタッチします。Deadline Cloud コンソールのキューのキュー**環境**タブから YAML テンプレートを追加するか、 [deadline:CreateQueueEnvironment](https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_CreateQueueEnvironment.html) オペレーションを使用できます。コンソールの手順については、*AWS 「Deadline Cloud ユーザーガイド*」の[「キュー環境の作成](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/create-queue-environment.html)」を参照してください。CLI AWS を使用してキュー環境をアタッチするには:

```
aws deadline create-queue-environment \
    --farm-id {{FARM_ID}} \
    --queue-id {{QUEUE_ID}} \
    --priority 1 \
    --template-type YAML \
    --template file://{{queue-environment.yaml}}
```