本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將套件發佈至 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
也提供 bashshell,其中一些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 頻道
-
複製截止日期雲端範例儲存庫。
git clone https://github.com/aws-deadline/deadline-cloud-samples.git -
切換至
conda_recipes目錄。cd deadline-cloud-samples/conda_recipes -
執行下列命令。將
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 頻道安裝套件。
測試套件
-
建立暫時測試目錄,並使用 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 -
將套件新增至專案。
pixi add blender=4.5 -
驗證套件是否正常運作。
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 命令會為執行命令之工作站的作業系統建置套件。如果您的截止日期雲端機群使用與工作站不同的作業系統,或者您的套件有其他主機需求,則您有下列選項:
後續步驟
將套件發佈至 Amazon S3 Conda 頻道後,請將截止日期雲端佇列設定為使用該頻道:
-
設定自訂 conda 套件的生產佇列許可 – 授予生產佇列對 Amazon S3 conda 頻道的唯讀存取權。
-
將 conda 頻道新增至佇列環境 – 設定佇列環境以從 Amazon S3 conda 頻道安裝套件。