View a markdown version of this page

將套件發佈至 Amazon S3 conda 頻道 - 截止日期雲端

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

將套件發佈至 Amazon S3 conda 頻道

您可以將 conda 套件發佈到 Amazon Simple Storage Service (Amazon S3) 儲存貯體,以便 AWS 截止日期雲端 (截止日期雲端) 工作者可以安裝它們來執行任務。此rattler-build publish命令使用 Amazon S3 的方式與使用本機檔案系統頻道的方式相同。命令可以建置配方並發佈結果,或發佈您已建置的套件檔案。在這兩種情況下, 命令都會將套件上傳至儲存貯體,並在單一步驟中為頻道編製索引。

rattler-build publish 命令 AWS 會使用標準登入資料鏈向 進行身分驗證,因此會像任何 AWS 工具一樣使用您的 AWS 組態。如需設定登入資料的詳細資訊,請參閱《AWS Command Line Interface (AWS CLI) 使用者指南》中的組態和登入資料檔案設定

先決條件

將套件發佈至 Amazon S3 之前,請先完成下列先決條件:

  • pixi 和 rattler-build – 從 pixi.sh 安裝 pixi,然後安裝 rattler-build

    pixi global install rattler-build
  • git – 複製範例儲存庫時需要。在 上Windows,適用於 的 git Windows 也提供 bash shell,其中一些Windows範例配方需要。

  • Amazon S3 儲存貯體 – 用作 conda 頻道的 Amazon S3 儲存貯體。您可以從截止日期雲端陣列使用任務附件儲存貯體,或建立單獨的儲存貯體。

  • AWS 登入資料 – 使用 aws configure命令或 aws login命令在工作站上設定登入資料。如需詳細資訊,請參閱 AWS Command Line Interface 使用者指南中的設定 AWS CLI

  • IAM 許可 – (選用) 若要減少憑證擁有的許可範圍,您可以使用 AWS Identity and Access Management (IAM) 政策,僅授予 Amazon S3 儲存貯體和您使用的頻道字首的下列許可 (例如 /Conda/*):

    • s3:GetObject

    • s3:PutObject

    • s3:DeleteObject

    • s3:ListBucket

    • s3:GetBucketLocation

將套件發佈至 Amazon S3 頻道

使用 rattler-build publish搭配 s3://目標,將套件發佈到您的 Amazon S3 Conda 頻道。如果頻道不存在於儲存貯體中, 會自動rattler-build初始化頻道。開始之前,請確定您已完成先決條件

下列範例會從 上的截止日期雲端範例儲存庫發佈 Blender4.5 範例配方GitHub。 https://github.com/aws-deadline/deadline-cloud-samples您可以取代與範例儲存庫不同的配方,或使用您自己的配方。

將套件發佈至 Amazon S3 頻道
  1. 複製截止日期雲端範例儲存庫。

    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保留建置目錄,以便您進行調查。執行下列命令,在建置環境中開啟互動式 Shell,並在建置期間設定所有環境變數。

rattler-build debug shell

從偵錯 shell,您可以修改檔案、執行個別建置命令,以及新增相依性來隔離問題。如需詳細資訊,請參閱 rattler-build 文件中的偵錯組建。

為其他平台建置套件

rattler-build publish 命令會為執行命令之工作站的作業系統建置套件。如果您的截止日期雲端機群使用與工作站不同的作業系統,或者您的套件有其他主機需求,則您有下列選項:

  • 在符合目標作業系統的主機rattler-build publish上執行 。例如,使用執行 的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體Linux來建置Linux機群的套件。

  • 使用截止日期雲端套件建置佇列來自動化目標平台上的建置。請參閱建立套件建置佇列

  • (進階) 使用跨編譯為工作站的不同平台建置套件。如需詳細資訊,請參閱 rattler-build 文件中的跨編譯

後續步驟

將套件發佈至 Amazon S3 Conda 頻道後,請將截止日期雲端佇列設定為使用該頻道: