View a markdown version of this page

Amazon S3 conda チャネルにパッケージを発行する - Deadline クラウド

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

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

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) ユーザーガイド「設定と認証情報ファイルの設定」を参照してください。

前提条件

Amazon S3 にパッケージを発行する前に、以下の前提条件を満たしてください。

  • pixi と rattler-buildpixi.sh から pixi をインストールし、 をインストールしますrattler-build

    pixi global install rattler-build
  • git – サンプルリポジトリのクローン作成に必要です。ではWindows、 の git Windows bash は、Windowsサンプルレシピの一部に必要なシェルも提供します。

  • Amazon S3 バケット – conda チャネルとして使用する Amazon S3 バケット。Deadline Cloud ファームのジョブアタッチメントバケットを使用するか、別のバケットを作成できます。

  • AWS 認証情報aws configure コマンドまたは aws login コマンドを使用して、ワークステーションで認証情報を設定します。詳細については、AWS Command Line Interface ユーザーガイドの「AWS CLIのセットアップ」を参照してください。

  • IAM アクセス許可 – (オプション) 認証情報のアクセス許可の範囲を減らすには、Amazon S3 バケットと使用するチャネルプレフィックス (例: ) に対して以下のアクセス許可のみを付与する (IAM) ポリシーを使用できます AWS Identity and Access Management /Conda/*

    • s3:GetObject

    • s3:PutObject

    • s3:DeleteObject

    • s3:ListBucket

    • s3:GetBucketLocation

Amazon S3 チャネルへのパッケージの発行

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

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

Amazon S3 チャネルにパッケージを発行するには
  1. Deadline Cloud サンプルリポジトリのクローンを作成します。

    git clone https://github.com/aws-deadline/deadline-cloud-samples.git
  2. conda_recipes ディレクトリを変更します。

    cd deadline-cloud-samples/conda_recipes
  3. 以下のコマンドを実行してください。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 などの特定のチャネルのパッケージに依存している場合は、 コマンド-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

パッケージのテスト

パッケージを公開したら、一時 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
  2. パッケージをプロジェクトに追加します。

    pixi add blender=4.5
  3. パッケージが正しく動作することを確認します。

    pixi run blender --version

クリーンアップ

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

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

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

    rm -rf package-test-env

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

    rmdir /s /q package-test-env

ビルドのデバッグ

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

rattler-build debug shell

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

他のプラットフォーム用のパッケージの構築

rattler-build publish コマンドは、コマンドを実行するワークステーションのオペレーティングシステム用のパッケージを構築します。Deadline Cloud フリートがワークステーションとは異なるオペレーティングシステムを使用している場合、またはパッケージに他のホスト要件がある場合は、次のオプションがあります。

  • ターゲットオペレーティングシステムに一致するホストrattler-build publishで を実行します。たとえば、実行中の Amazon Elastic Compute Cloud (Amazon EC2) インスタンスLinuxを使用して、Linuxフリートのパッケージを構築します。

  • Deadline Cloud パッケージ構築キューを使用して、ターゲットプラットフォームでのビルドを自動化します。「パッケージ構築キューを作成する」を参照してください。

  • (アドバンスト) クロスコンパイルを使用して、ワークステーションとは異なるプラットフォームのパッケージを構築します。詳細については、rattler-build ドキュメントの「クロスコンパイル」を参照してください。

次の手順

Amazon S3 conda チャネルにパッケージを発行したら、チャネルを使用するように Deadline Cloud キューを設定します。