Deadline Cloud でパッケージビルドを自動化する - Deadline クラウド

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

Deadline Cloud でパッケージビルドを自動化する

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

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

を使用してパッケージ構築キューを作成する CloudFormation

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

テンプレートをデプロイする前に、ジョブアタッチメントと conda チャネルを保持する Amazon S3 バケットを作成します。Amazon S3 コンソールからバケットを作成できます。テンプレートをデプロイするときは、バケット名が必要です。

CloudFormation テンプレートをデプロイするには
  1. Deadline Cloud サンプルリポジトリから deadline-cloud-starter-farm-template.yaml テンプレートをダウンロードしますGitHub。

  2. CloudFormation コンソールから、スタックの作成を選択し、新しいリソース (標準) を使用します。

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

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

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

テンプレートパラメータとカスタマイズオプションの詳細については、 の Deadline Cloud サンプルリポジトリのスターターファーム README を参照してくださいGitHub。

コンソールからパッケージ構築キューを作成する

Deadline Cloud ユーザーガイド「キューの作成」の手順に従います。以下の変更を加えます。

  • ステップ 5 で、既存の Amazon S3 バケットを選択します。ビルドアーティファクトが通常の Deadline Cloud アタッチメントとは別のままDeadlineCloudPackageBuildになるように、 などのルートフォルダ名を指定します。

  • ステップ 6 では、パッケージ構築キューを既存のフリートに関連付けるか、現在のフリートが適切でない場合はまったく新しいフリートを作成できます。

  • ステップ 9 で、パッケージ構築キューの新しいサービスロールを作成します。アクセス許可を変更して、パッケージのアップロードと conda チャネルのインデックス再作成に必要なアクセス許可をキューに付与します。

パッケージ構築キューのアクセス許可を設定する

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

  • s3:GetObject

  • s3:PutObject

  • s3:ListBucket

  • s3:GetBucketLocation

  • s3:DeleteObject

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

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

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

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

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

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

    { "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" } } },

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

パッケージ構築キューを作成し、キューのアクセス許可を設定したら、ジョブを送信して conda パッケージを構築できます。の Deadline Cloud サンプルリポジトリのsubmit-package-jobスクリプトは、conda レシピのビルドジョブGitHubを送信します。

また、以下も必要になります。

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

    deadline config gui
  2. サンプルリポジトリの conda_recipes ディレクトリに変更します。

    cd deadline-cloud-samples/conda_recipes
  3. レシピディレクトリを使用してsubmit-package-jobスクリプトを実行します。次の例では、4.5 Blender レシピを構築します。

    ./submit-package-job blender-4.5/

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

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

Conda パッケージを構築するジョブの進行状況とステータスを示す Deadline Cloud モニター。

モニターには、パッケージの構築と conda チャネルのインデックス再作成の 2 つのステップが表示されます。パッケージ構築ステップのタスクを右クリックし、ログの表示を選択すると、モニターにセッションアクションが表示されます。

  • アタッチメントの同期 – 入力ジョブアタッチメントをコピーするか、仮想ファイルシステムをマウントします。

  • Launch Conda – キュー環境アクション。ビルドジョブは conda パッケージを指定しないため、このアクションはすぐに終了します。

  • CondaBuild Env の起動 – conda パッケージを構築し、チャネルのインデックスを再作成するために必要なソフトウェアを使用して conda 仮想環境を作成します。

  • タスク実行 – パッケージを構築し、結果を Amazon S3 にアップロードします。

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