View a markdown version of this page

ジョブにアプリケーションを提供する - Deadline クラウド

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

ジョブにアプリケーションを提供する

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

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

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

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

conda チャネルからアプリケーションを取得する

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

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

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

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

この例の最新バージョンについては、GitHub の deadline-cloud-samples リポジトリの conda_queue_env_console_equivalent.yaml を参照してください。

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

conda-forge からオープンソースライブラリを取得する

このセクションでは、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」を参照してください。conda パッケージをロードするキュー環境の最新バージョンについては、GitHub の deadline-cloud-samples リポジトリの conda_queue_env_console_equivalent.yaml を参照してください。

期限クラウドチャネルBlenderから取得する

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

deadline-cloud チャネルによって提供されるソフトウェアのリストについては、AWS 「Deadline Cloud ユーザーガイド」の「デフォルトキュー環境」を参照してください。

このジョブは、キュー環境で定義された 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」を参照してください。conda パッケージをロードするキュー環境の最新バージョンについては、 の deadline-cloud-samples リポジトリの conda_queue_env_console_equivalent.yaml を参照してくださいGitHub。

別のパッケージマネージャーを使用する

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

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

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

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

この例の最新バージョンについては、 の deadline-cloud-samples リポジトリの rez_queue_env.yaml を参照してくださいGitHub。

Python 専用パッケージに pip を使用する

ジョブに必要なアプリケーションまたはライブラリが 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 キュー環境を作成します。これにより、ジョブのステップが使用可能なパッケージで実行されます。環境はセッション作業ディレクトリに作成されるため、セッションが終了すると Deadline Cloud によって自動的にクリーンアップされるため、独自のクリーンアップロジックを記述する必要はありません。ジョブが を設定しない場合PipPackages、キュー環境は何もしないため、使用していないジョブも実行するキューに追加できます。

パブリック PyPI インデックスの代わりに AWS CodeArtifact リポジトリなどのプライベートインデックスからパッケージをインストールするには、キュー環境が提供する PipIndexUrlおよび PipExtraIndexUrlsパラメータを設定します。

キュー環境を設定しない場合は、代わりにジョブバンドルで同じ pip 環境をインラインで定義できます。各アプローチの例については、 の deadline-cloud-samples リポジトリの pip_package_job および 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 オペレーションを使用できます。コンソールの手順については、AWS 「Deadline Cloud ユーザーガイド」の「キュー環境の作成」を参照してください。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