

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

# 使用 S3 建立 conda 頻道
<a name="configure-jobs-s3-channel"></a>

如果您的任務需要執行 [https://docs.aws.amazon.com/deadline-cloud/latest/userguide/create-queue-environment.html#conda-queue-environment](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/create-queue-environment.html#conda-queue-environment)或 [https://conda-forge.org/](https://conda-forge.org/)頻道上無法使用的應用程式，您可以託管自訂 conda 頻道來提供您自己的套件。當您在截止日期雲端 AWS （截止日期雲端） 主控台中建立佇列時，主控台預設會新增 Conda 佇列環境。若要讓套件可供任務使用，請將自訂頻道新增至佇列環境。

conda 頻道是靜態託管內容，您可以透過[各種方式](https://rattler-build.prefix.dev/latest/publish/)託管，包括檔案系統或 Amazon Simple Storage Service (Amazon S3) 儲存貯體。如果您的截止日期雲端陣列使用資產的共用檔案系統，您可以使用其上的任何路徑做為頻道名稱。您可以在 Amazon S3 儲存貯體中託管頻道，以便使用 AWS Identity and Access Management (IAM) 許可進行更廣泛的存取。

您可以在[本機建置和測試套件](build-test-packages-locally.md)，然後將其[發佈到頻道](publish-packages-s3-channel.md)。在本機建置套件是開始在套件建置配方上迭代的簡單方法，無需基礎設施設定。您也可以使用截止日期雲端[套件建置佇列](automate-package-builds.md)來建置套件並將其發佈至頻道。套件建置佇列可簡化多個作業系統和加速器組態的維護套件。您可以從任何地方更新版本並提交完整的套件組建集。

您可以透過多種方式為 Studio 和 Deadline Cloud Farm 設定頻道。您可以有一個 Amazon S3 頻道，並將所有工作站和陣列主機設定為使用它。您也可以擁有多個頻道，並使用 AWS DataSync (DataSync) 設定鏡像。例如，您的 Deadline Cloud 套件建置佇列可以發佈到 Amazon S3 頻道，該頻道在現場部署針對工作站和現場部署陣列主機進行鏡像。

**Topics**
+ [在本機建置和測試套件](build-test-packages-locally.md)
+ [將套件發佈至 Amazon S3 conda 頻道](publish-packages-s3-channel.md)
+ [設定自訂 conda 套件的生產佇列許可](#s3-channel-configure-permissions)
+ [將 conda 頻道新增至佇列環境](#s3-channel-add-channel)
+ [為應用程式或外掛程式建立 conda 套件](conda-package.md)
+ [建立 的 conda 組建配方 Blender](create-conda-recipe-blender.md)
+ [建立 的 conda 組建配方 Autodesk Maya](create-conda-recipe-maya.md)
+ [建立Autodesk Maya to Arnold (MtoA)外掛程式的 conda 組建配方](create-conda-recipe-mtoa-plugin.md)
+ [使用截止日期雲端自動化套件建置](automate-package-builds.md)

# 在本機建置和測試套件
<a name="build-test-packages-locally"></a>

在將套件發佈至 Amazon S3 或在截止日期雲端陣列上設定 CI/CD 自動化之前，您可以使用本機檔案系統頻道在工作站上建置和測試 conda 套件。此方法可讓您在配方上於本機快速迭代並驗證套件。

`rattler-build publish` 命令會建置配方、將產生的套件複製到頻道，並在一個步驟中為頻道編製索引。當您以本機檔案系統目錄為目標時，如果目錄不存在， 會自動`rattler-build`建立和初始化頻道。

下列指示使用來自 上 Deadline Cloud 範例儲存庫的 Blender4.5 範例配方。 [https://github.com/aws-deadline/deadline-cloud-samples](https://github.com/aws-deadline/deadline-cloud-samples) GitHub您可以取代與範例儲存庫不同的配方，或使用您自己的配方。

## 先決條件
<a name="build-test-locally-prereqs"></a>

開始之前，請在工作站上安裝下列工具：
+ **pixi** – 用於安裝`rattler-build`和測試套件的套件管理員。從 [pixi.sh](https://pixi.sh) 安裝 pixi。
+ **rattler-build** – Deadline Cloud conda 配方所使用的套件建置工具。安裝 pixi 之後，請執行下列命令來安裝 `rattler-build`。

  ```
  pixi global install rattler-build
  ```
+ **git** – 複製範例儲存庫時需要。在 上Windows，適用於 [的 git Windows](https://gitforwindows.org/) 也提供 `bash` shell，其中一些Windows範例配方需要。

## 建置套件並將其發佈至本機頻道
<a name="build-test-locally-build"></a>

在此程序中，您會複製截止日期雲端範例儲存庫，並使用 `rattler-build publish`來建置和發佈套件至本機檔案系統頻道。

**建置套件並將其發佈至本機頻道**

1. 複製截止日期雲端範例儲存庫。

   ```
   git clone https://github.com/aws-deadline/deadline-cloud-samples.git
   ```

1. 切換至 `conda_recipes` 目錄。

   ```
   cd deadline-cloud-samples/conda_recipes
   ```

1. 執行下列命令來建置 Blender 4.5 配方，並將套件發佈至本機頻道目錄。

   在 Linux和 macOS上執行下列命令。

   ```
   rattler-build publish blender-4.5/recipe/recipe.yaml \
       --to file://$HOME/my-conda-channel
   ```

   在 Windows(cmd) 上執行下列命令。

   ```
   rattler-build publish blender-4.5/recipe/recipe.yaml ^
       --to file://%USERPROFILE%/my-conda-channel
   ```

   `rattler-build publish` 命令會執行下列動作：
   + 從配方建置套件。
   + 如果目錄不存在，則建立頻道目錄。
   + 將套件檔案複製到頻道。
   + 為頻道編製索引，讓套件管理員可以找到套件。

   如果您的套件配方取決於來自特定頻道的套件，例如 [conda-forge](https://conda-forge.org/)，請將 `-c conda-forge`新增至 命令。

若要在變更配方後重建套件，請新增 `--build-number=+1` 以自動增加建置編號。

```
rattler-build publish blender-4.5/recipe/recipe.yaml \
    --to file://$HOME/my-conda-channel \
    --build-number=+1
```

如需 的詳細資訊`rattler-build publish`，請參閱 [rattler-build 發佈文件](https://rattler-build.prefix.dev/latest/publish/)。

## 偵錯組建
<a name="build-test-locally-debug"></a>

如果建置失敗， 會`rattler-build`保留建置目錄，以便您進行調查。執行下列命令，在建置環境中開啟互動式 Shell，並在建置期間設定所有環境變數。

```
rattler-build debug shell
```

從偵錯 shell，您可以修改檔案、執行個別建置命令，以及新增相依性來隔離問題。如需詳細資訊，請參閱 rattler-build 文件中的[偵錯](https://rattler-build.prefix.dev/latest/debugging_builds/)組建。

## 測試套件
<a name="build-test-locally-test"></a>

在您建置和發佈套件之後，請建立臨時 pixi 專案。使用 專案從本機頻道安裝套件，並驗證其是否正常運作。

**測試套件**

1. 建立暫時測試目錄，並使用本機頻道初始化 pixi 專案。

   在 Linux和 macOS上執行下列命令。

   ```
   mkdir package-test-env
   cd package-test-env
   pixi init --channel file://$HOME/my-conda-channel
   ```

   在 Windows(cmd) 上執行下列命令。

   ```
   mkdir package-test-env
   cd package-test-env
   pixi init --channel file://%USERPROFILE%/my-conda-channel
   ```

1. 將套件新增至專案。

   ```
   pixi add blender=4.5
   ```

1. 驗證套件是否正常運作。

   ```
   pixi run blender --version
   ```

當您對套件感到滿意時，您可以將套件發佈到 Amazon S3 conda 頻道，以便截止日期雲端工作者可以安裝套件。請參閱將[套件發佈至 S3 conda 頻道](publish-packages-s3-channel.md)。

## 清除
<a name="build-test-locally-cleanup"></a>

測試之後，您可以移除測試專案和本機頻道。

**清除測試資源**

1. 移除測試專案目錄。

   在 Linux和 macOS上執行下列命令。

   ```
   rm -rf package-test-env
   ```

   在 Windows(cmd) 上執行下列命令。

   ```
   rmdir /s /q package-test-env
   ```

1. 移除本機 conda 頻道目錄。

   在 Linux和 macOS上執行下列命令。

   ```
   rm -rf $HOME/my-conda-channel
   ```

   在 Windows(cmd) 上執行下列命令。

   ```
   rmdir /s /q %USERPROFILE%\my-conda-channel
   ```

1. （選用） 移除包含建置套件檔案的`rattler-build`輸出目錄。

   在 Linux和 macOS上執行下列命令。

   ```
   rm -rf deadline-cloud-samples/conda_recipes/output
   ```

   在 Windows(cmd) 上執行下列命令。

   ```
   rmdir /s /q deadline-cloud-samples\conda_recipes\output
   ```

# 將套件發佈至 Amazon S3 conda 頻道
<a name="publish-packages-s3-channel"></a>

您可以將 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) 使用者指南*》中的[組態和登入資料檔案設定](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)。

## 先決條件
<a name="publish-s3-prereqs"></a>

將套件發佈至 Amazon S3 之前，請先完成下列先決條件：
+ **pixi 和 rattler-build** – 從 [pixi.sh](https://pixi.sh) 安裝 pixi，然後安裝 `rattler-build`。

  ```
  pixi global install rattler-build
  ```
+ **git** – 複製範例儲存庫時需要。在 上Windows，適用於 [的 git Windows](https://gitforwindows.org/) 也提供 `bash` shell，其中一些Windows範例配方需要。
+ **Amazon S3 儲存貯**體 – 用作 conda 頻道的 Amazon S3 儲存貯體。您可以從截止日期雲端陣列使用任務附件儲存貯體，或建立單獨的儲存貯體。
+ **AWS 登入資料** – 使用 `aws configure`命令或 `aws login`命令在工作站上設定登入資料。如需詳細資訊，請參閱 *AWS Command Line Interface 使用者指南*中的[設定 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-quickstart.html)。
+ **IAM 許可** – （選用） 若要減少憑證擁有的許可範圍，您可以使用 AWS Identity and Access Management (IAM) 政策，僅授予 Amazon S3 儲存貯體和您使用的頻道字首的下列許可 （例如 `/Conda/*`)：
  + `s3:GetObject`
  + `s3:PutObject`
  + `s3:DeleteObject`
  + `s3:ListBucket`
  + `s3:GetBucketLocation`

## 將套件發佈至 Amazon S3 頻道
<a name="publish-s3-procedure"></a>

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

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

**將套件發佈至 Amazon S3 頻道**

1. 複製截止日期雲端範例儲存庫。

   ```
   git clone https://github.com/aws-deadline/deadline-cloud-samples.git
   ```

1. 切換至 `conda_recipes` 目錄。

   ```
   cd deadline-cloud-samples/conda_recipes
   ```

1. 執行下列命令。將 *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](https://conda-forge.org/)，請將 `-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
```

## 測試套件
<a name="publish-s3-test"></a>

發佈套件後，請建立臨時 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
   ```

1. 將套件新增至專案。

   ```
   pixi add blender=4.5
   ```

1. 驗證套件是否正常運作。

   ```
   pixi run blender --version
   ```

## 清除
<a name="publish-s3-cleanup"></a>

測試後，移除測試專案目錄。

**清除測試資源**
+ 移除測試專案目錄。

  在 Linux和 macOS上執行下列命令。

  ```
  rm -rf package-test-env
  ```

  在 Windows(cmd) 上執行下列命令。

  ```
  rmdir /s /q package-test-env
  ```

## 偵錯組建
<a name="publish-s3-debug"></a>

如果建置失敗， 會`rattler-build`保留建置目錄，以便您進行調查。執行下列命令，在建置環境中開啟互動式 Shell，並在建置期間設定所有環境變數。

```
rattler-build debug shell
```

從偵錯 shell，您可以修改檔案、執行個別建置命令，以及新增相依性來隔離問題。如需詳細資訊，請參閱 rattler-build 文件中的[偵錯](https://rattler-build.prefix.dev/latest/debugging_builds/)組建。

## 為其他平台建置套件
<a name="publish-s3-cross-platform"></a>

`rattler-build publish` 命令會為執行命令之工作站的作業系統建置套件。如果您的截止日期雲端機群使用與工作站不同的作業系統，或者您的套件有其他主機需求，則您有下列選項：
+ 在符合目標作業系統的主機`rattler-build publish`上執行 。例如，使用執行 的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體Linux來建置Linux機群的套件。
+ 使用截止日期雲端套件建置佇列來自動化目標平台上的建置。請參閱[建立套件建置佇列](automate-package-builds.md#s3-channel-create-queue)。
+ （進階） 使用跨編譯為工作站的不同平台建置套件。如需詳細資訊，請參閱 rattler-build 文件中的[跨編譯](https://rattler-build.prefix.dev/latest/compilers/#cross-compilation)。

## 後續步驟
<a name="publish-s3-next-steps"></a>

將套件發佈至 Amazon S3 Conda 頻道後，請將截止日期雲端佇列設定為使用該頻道：
+ [設定自訂 conda 套件的生產佇列許可](configure-jobs-s3-channel.md#s3-channel-configure-permissions) – 授予生產佇列對 Amazon S3 conda 頻道的唯讀存取權。
+ [將 conda 頻道新增至佇列環境](configure-jobs-s3-channel.md#s3-channel-add-channel) – 設定佇列環境以從 Amazon S3 conda 頻道安裝套件。

## 設定自訂 conda 套件的生產佇列許可
<a name="s3-channel-configure-permissions"></a>

您的生產佇列需要佇列 S3 儲存貯體中`/Conda`字首的唯讀許可。開啟與生產佇列相關聯之角色的 AWS Identity and Access Management (IAM) 頁面，並使用下列內容修改政策：

1. 開啟截止日期雲端主控台，並導覽至套件建置佇列的佇列詳細資訊頁面。

1. 選擇佇列服務角色，然後選擇**編輯佇列**。

1. 捲動至**佇列服務角色**區段，然後在 **IAM 主控台中選擇檢視此角色**。

1. 從許可政策清單中，為您的佇列選擇 **AmazonDeadlineCloudQueuePolicy**。

1. 從**許可**索引標籤中，選擇**編輯**。

1. 將新區段新增至佇列服務角色，如下所示。將 *amzn-s3-demo-bucket* 和 *111122223333* 取代為您自己的儲存貯體和帳戶。

   ```
   {
      "Effect": "Allow",
      "Sid": "CustomCondaChannelReadOnly",
      "Action": [
       "s3:GetObject",
       "s3:ListBucket"
      ],
      "Resource": [
       "arn:aws:s3:::amzn-s3-demo-bucket",
       "arn:aws:s3:::amzn-s3-demo-bucket/Conda/*"
      ],
      "Condition": {
       "StringEquals": {
        "aws:ResourceAccount": "111122223333"
       }
      }
     },
   ```

## 將 conda 頻道新增至佇列環境
<a name="s3-channel-add-channel"></a>

若要使用 S3 conda 頻道，您需要將`s3://amzn-s3-demo-bucket/Conda/Default`頻道位置新增至您提交至截止日期雲端的任務`CondaChannels`參數。Deadline Cloud 提供的提交者會提供欄位來指定自訂 conda 頻道和套件。

您可以編輯生產佇列的 conda 佇列環境，以避免修改每個任務。請執行下列步驟：

1. 開啟截止日期雲端主控台，並導覽至生產佇列的佇列詳細資訊頁面。

1. 選擇環境索引標籤。

1. 選取 **Conda** 佇列環境，然後選擇**編輯**。

1. 選擇 **JSON 編輯器**，然後在指令碼中尋找 的參數定義`CondaChannels`。

1. 編輯該行，`default: "deadline-cloud"`使其從新建立的 S3 conda 頻道開始：

   ```
   default: "s3://amzn-s3-demo-bucket/Conda/Default deadline-cloud"
   ```

服務受管機群預設會為 conda 啟用彈性的頻道優先順序。對於請求 `blender=4.2` 4.2 Blender 同時位於新頻道和`deadline-cloud`頻道的任務，將從頻道清單中的第一個頻道提取套件。如果在第一個通道中找不到指定的套件版本，則會檢查後續通道的套件版本。

對於客戶管理的機群，您可以使用 Deadline Cloud 範例GitHub儲存庫中的其中一個 conda [佇列環境範例來啟用 conda](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/queue_environments/README.md) 套件的使用。

# 為應用程式或外掛程式建立 conda 套件
<a name="conda-package"></a>

conda 套件是以任何語言撰寫的軟體壓縮封存。Conda 支援各種作業系統和架構組合，因此您可以封裝完整的應用程式Blender，例如 Maya、 以及 Python 和其他語言的Nuke程式庫。如需 conda 套件的詳細資訊，請參閱 conda 文件中的[套件](https://docs.conda.io/projects/conda/en/latest/user-guide/concepts/packages.html)。

若要使用 conda 套件，請將它安裝到虛擬環境中。conda 虛擬環境具有安裝套件的*字首目錄*。安裝套件會在支援時使用檔案的硬連結或重新連結，因此使用相同套件建立多個環境不會使用顯著的額外磁碟空間。若要使用虛擬環境，請啟用它來設定環境變數。啟用會執行套件提供的指令碼，讓每個套件都有機會修改 PATH 或其他環境變數。Conda 套件通常包含應用程式或程式庫，但彈性啟用表示也可以指向安裝在共用檔案系統上的應用程式。

建立自訂套件包含三個階段：*配方*包含建置指示、*套件*是建置成品 (`.conda` 或 `.tar.bz2` 檔案），以及*頻道*託管套件以供安裝。`rattler-build publish` 命令會處理這三個步驟：它可以將配方建置到套件中並發佈到頻道，也可以直接採用套件成品來發佈它。

[conda-forge](https://conda-forge.org/) 社群會維護各種開放原始碼軟體的套件配方，並在`conda-forge`頻道中託管套件成品。您可以設定佇列以包含 `conda-forge`做為套件來源，然後建置取決於要執行之 conda-forge 套件的自訂套件。針對 Linux，conda-forge 託管完整的編譯器工具鏈，包括 CUDA 支援，並選取一致的編譯和連結選項。您可以在自己的配方中使用 conda-forge 套件做為相依性，或在相同的環境中將其與自訂套件一起安裝。

您可以將整個應用程式結合到 conda 套件中，包括相依性。Deadline Cloud 在[截止日期雲端通道](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/create-queue-environment.html#conda-queue-environment)中為服務受管機群提供的套件使用此二進位重新封裝方法。這會組織與 安裝相同的檔案，以符合 conda 虛擬環境。

**注意**  
大型應用程式可能需要數十 GB 的可用磁碟空間，才能進行來源封存、解壓縮檔案和建置輸出。請確定您使用的磁碟有足夠的可用空間供套件建置輸出使用。

## 封裝應用程式
<a name="conda-package-application"></a>

為 conda 重新封裝應用程式時，有兩個目標：
+ 應用程式的大多數檔案應與主要 conda 虛擬環境結構分開。然後，環境可以將應用程式與 [Conda-forge](https://conda-forge.org/) 等其他來源的套件混合。
+ 啟用 conda 虛擬環境時，應用程式應可從 PATH 環境變數取得。

**為 conda 重新封裝應用程式**

1. 將安裝應用程式的 conda 建置配方寫入 等子目錄中`$CONDA_PREFIX/opt/<application-name>`。這會將它與標準字首目錄分開，例如 `bin`和 `lib`。

1. 將符號連結或啟動指令碼新增至 ，`$CONDA_PREFIX/bin`以執行應用程式二進位檔。

   或者，建立`conda activate`命令將執行的 activate.d 指令碼，將應用程式二進位目錄新增至 PATH。在 上Windows，在所有可以建立環境的地方都不支援符號連結，請改用應用程式啟動或 activate.d 指令碼。

1. 有些應用程式依賴於在截止日期雲端服務受管機群上預設未安裝的程式庫。例如，非互動式任務通常不需要 X11 視窗系統，但某些應用程式仍需要在沒有圖形界面的情況下執行。您必須在您建立的套件內提供這些相依性。

1. 如果應用程式支援外掛程式，請提供外掛程式套件應遵循的明確慣例，以在虛擬環境中與應用程式整合。例如，[Maya2026 年範例配方](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/maya-2026#instructions-for-maya-plugin-packages)會記錄此Maya外掛程式慣例。

1. 請務必遵循您所封裝應用程式的著作權和授權合約。建議您的 conda 頻道使用私有 Amazon S3 儲存貯體，以控制對陣列的分佈和限制套件存取。

`deadline-cloud` 頻道中套件的範例配方可在 [上的截止日期雲端範例](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes#readme)儲存庫中取得GitHub。

## 封裝外掛程式
<a name="conda-package-plugins"></a>

應用程式外掛程式可以封裝為自己的 conda 套件。建立外掛程式套件時，請遵循下列準則：
+ 在組建配方 中包含主機應用程式套件做為組建和執行相依性`recipe.yaml`。使用版本限制條件，以便建置配方僅與相容的套件一起安裝。
+ 遵循主機應用程式套件慣例來註冊外掛程式。

## 轉接器套件
<a name="conda-package-adaptors"></a>

某些截止日期雲端應用程式整合使用擴展應用程式界面的*轉接器*，以簡化[撰寫任務範本](building-jobs.md)。轉接器是一種命令列界面，支援執行背景協助程式、報告狀態和套用路徑映射。如需詳細資訊，請參閱 上的[開啟任務描述轉接器執行期](https://github.com/OpenJobDescription/openjd-adaptor-runtime-for-python#readme)GitHub。例如， 上的 [deadline-cloud-for-maya](https://github.com/aws-deadline/deadline-cloud-for-maya/) GitHub包含整合的任務提交 GUI 和Maya轉接器，可在服務受管機群上做為`maya-openjd`套件使用。

來自截止日期雲端提交者 GUIs 的任務提交包含`CondaPackages`參數值，指定要包含在虛擬環境中以執行任務的 conda 套件。的`CondaPackages`參數值Maya通常看起來像`maya=2025.* maya-openjd=0.15.* maya-mtoa`，而且可能包含外掛程式套件的替代項目。當佇列環境設定用於執行任務的 conda 虛擬環境時，它會將這些套件名稱和版本限制解析為相容，並新增其需要執行的所有相依性套件。每個轉接器和外掛程式套件都會指定其相容的項目，包括 的哪些版本Maya、Python 的哪些版本，以及其他相依性。

若要使用我們的範例建置自己的轉接器套件，例如 上的 [maya-openjd 配方](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/maya-openjd)GitHub，您可以建置 Python 套件和 [conda-forge](https://conda-forge.org/) 提供的其他相依性。您可能需要先建立[截止日期](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/deadline)和 [openjd-adaptor-runtime](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/openjd-adaptor-runtime) 配方，以滿足相依性。

# 建立 的 conda 組建配方 Blender
<a name="create-conda-recipe-blender"></a>

您可以使用不同的應用程式來建立 conda 建置配方。 Blender 可免費使用，而且可以輕鬆地與 conda 封裝。Foundation 為多個作業系統Blender提供[應用程式封存](https://download.blender.org/release/Blender4.2/)。我們建立了使用 Windows .zip 和 Linux .tar.xz 檔案的範例 conda 建置配方。在本節中，了解如何使用 [Blender 4.2 conda 建置配方。](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/blender-4.2)

[ deadline-cloud.yaml](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/blender-4.2) 檔案指定 Conda 平台和其他中繼資料，用於將套件任務提交至截止日期雲端。此配方包含本機來源封存資訊，以示範 的運作方式。linux-64 conda 平台設定為在預設任務提交中建置，以符合最常見的組態。deadline-cloud.yaml 看起來類似以下內容：

```
condaPlatforms:
  - platform: linux-64
    defaultSubmit: true
    sourceArchiveFilename: blender-4.2.1-linux-x64.tar.xz
    sourceDownloadInstructions: 'Run "curl -LO https://download.blender.org/release/Blender4.2/blender-4.2.1-linux-x64.tar.xz"'
  - platform: win-64
    defaultSubmit: false
    sourceArchiveFilename: blender-4.2.1-windows-x64.zip
    sourceDownloadInstructions: 'Run "curl -LO https://download.blender.org/release/Blender4.2/blender-4.2.1-windows-x64.zip"'
```

檢閱 `recipe`目錄中的檔案。配方的中繼資料位於 [ recipe/recipe.yaml。](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/blender-4.2/recipe/recipe.yaml)您也可以閱讀 conda 組建 [meta.yaml](https://docs.conda.io/projects/conda-build/en/latest/resources/define-metadata.html) 文件以進一步了解，例如檔案是產生 YAML 的範本。範本僅用於指定版本編號一次，並根據作業系統提供不同的值。

您可以檢閱在 中選取的建置選項`meta.yaml`，以關閉各種二進位重新定位和動態共用物件 (DSO) 連結檢查。這些選項控制套件在任何目錄字首安裝到 conda 虛擬環境時的運作方式。預設值可簡化將每個相依性程式庫封裝成個別的套件，但在二進位重新封裝應用程式時，您需要變更它們。

如果您要封裝的應用程式需要額外的相依性程式庫，或者您是單獨封裝應用程式的外掛程式，您可能會遇到 DSO 錯誤。當相依性不在需要的可執行檔或程式庫的程式庫搜尋路徑中時，就會發生這些錯誤。在系統上安裝時，應用程式依賴於全域定義路徑中的程式庫`/usr/lib`，例如 `/lib`或 。不過，由於 conda 虛擬環境可以放置在任何地方，因此沒有絕對路徑可供使用。Conda 使用 Linux和 macOS 支援的相對 RPATH 功能來處理此問題。如需詳細資訊，請參閱[讓套件可重新定位](https://docs.conda.io/projects/conda-build/en/latest/resources/make-relocatable.html)的 conda 建置文件。

Blender 不需要任何 RPATH 調整，因為應用程式封存是基於這一點而建置的。對於確實需要它的應用程式，您可以使用與 conda 建置相同的工具：`patchelf`在 Linux 和 `install_name_tool`上macOS。

在套件建置期間，[build.sh](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/blender-4.2/recipe/build.sh) 或 [build\$1win.sh](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/blender-4.2/recipe/build_win.sh) （稱為 `bld.bat`) 指令碼會執行 ，以將檔案安裝到與套件相依性一起準備的環境中。這些指令碼會複製安裝檔案、從 建立符號連結`$PREFIX/bin`，以及設定啟用指令碼。在 上Windows，它不會建立符號連結，而是將 Blender 目錄新增至啟用指令碼中的 PATH。

針對 conda `cmd.exe` 建置配方Windows的一部分，我們使用 `bash`而不是 .bat 檔案，因為這可在建置指令碼之間提供更高的一致性。如需`bash`在 上使用 [ 的秘訣，請參閱截止日期雲端開發人員指南](https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/what-is-a-deadline-cloud-workload.html#workload-portability)的工作負載可攜性建議Windows。如果您已為 安裝 [git Windows](https://gitforwindows.org/) 以複製 [deadline-cloud-samples](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/) git 儲存庫，則您已擁有 的存取權`bash`。

[ conda 建置環境變數](https://docs.conda.io/projects/conda-build/en/latest/user-guide/environment-variables.html)文件會列出可用於建置指令碼的值。這些值包括`$SRC_DIR`來源封存資料、`$PREFIX`安裝目錄、從配方`$RECIPE_DIR`存取其他檔案、`$PKG_NAME``$PKG_VERSION`套件名稱和版本，以及目標 conda `$target_platform` 平台。

## 提交 Blender 4.2 套件任務
<a name="s3-channel-build-blender"></a>

您可以下載Blender封存，然後將任務提交至套件建置佇列，以建置自己的 Blender 4.2 conda 套件來轉譯任務。佇列會將任務傳送至相關聯的機群，以建置套件並重新索引 conda 頻道。

這些指示使用 bash 相容 shell 的 git，從 [Deadline Cloud 範例GitHub儲存庫](https://github.com/aws-deadline/deadline-cloud-samples)取得 OpenJD 套件建置任務和一些 conda 配方。您也需要下列項目：
+ 如果您使用的是 Windows，安裝 git 時會安裝一個版本的 bash、git BASH。
+ 您必須安裝[截止日期雲端 CLI](https://github.com/aws-deadline/deadline-cloud)。
+ 您必須登入[截止日期雲端監視器](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/working-with-deadline-monitor.html)。

1. 使用下列命令開啟截止日期雲端組態 GUI，並將預設陣列和佇列設定為套件建置佇列。

   ```
   deadline config gui
   ```

1. 使用下列命令來複製截止日期雲端範例GitHUb儲存庫。

   ```
   git clone https://github.com/aws-deadline/deadline-cloud-samples.git
   ```

1. 變更為 `conda_recipes`目錄中的 `deadline-cloud-samples`目錄。

   ```
   cd deadline-cloud-samples/conda_recipes
   ```

1. 執行名為 的指令碼`submit-package-job`。指令碼提供Blender第一次執行指令碼時下載的指示。

   ```
   ./submit-package-job blender-4.2/
   ```

1. 遵循下載 的指示Blender。當您有封存時，請再次執行`submit-package-job`指令碼。

   ```
   ./submit-package-job blender-4.2/
   ```

提交任務後，請使用截止日期雲端監視器來檢視任務執行時的進度和狀態。

監視器的左下角顯示任務的兩個步驟，建置套件，然後重新編製索引。右下角顯示每個任務的個別步驟。在此範例中，每個任務都有一個步驟。

![\[截止日期雲端監視器，顯示建置Blender套件之任務的進度和狀態。\]](http://docs.aws.amazon.com/zh_tw/deadline-cloud/latest/developerguide/images/Conda-Figure3.png)


在監視器的左下角是任務的兩個步驟，建立套件，然後重新索引 conda 頻道。右下角是每個步驟的個別任務。在此範例中，每個步驟只有一個任務。

當您在套件建置步驟的任務上按一下滑鼠右鍵並選擇**檢視日誌**時，監視器會顯示工作階段動作清單，顯示如何在工作者上排程任務。動作包括：
+ **同步附件** – 此動作會複製輸入任務附件或掛載虛擬檔案系統，視任務附件檔案系統所使用的設定而定。
+ **啟動 Conda** – 此動作來自您建立佇列時預設新增的佇列環境。任務不會指定任何 conda 套件，因此會快速完成且不會建立 conda 虛擬環境。
+ **啟動 CondaBuild Env** – 此動作會建立自訂 conda 虛擬環境，其中包含建置 conda 套件和重新索引頻道所需的軟體。它會從 [conda-forge](https://conda-forge.org/) 頻道安裝 。
+ **任務執行** – 此動作會建置Blender套件，並將結果上傳至 Amazon S3。

動作執行時，會以結構化格式將日誌傳送至 Amazon CloudWatch。當任務完成時，選取**檢視所有任務的日誌**，以查看有關任務執行所在環境設定和銷毀的其他日誌。

# 使用 4.2 Blender 轉譯任務測試套件
<a name="s3-channel-submit-job"></a>

建置 Blender 4.2 套件，並將生產佇列設定為使用 S3 conda 頻道後，您可以提交任務以使用套件進行轉譯。如果您沒有Blender場景，請從[Blender示範檔案](https://www.blender.org/download/demo-files)頁面下載 Blender 3.5 - Cozy Kitchen 場景。

您先前下載的 Deadline Cloud 範例GitHub儲存庫包含使用下列命令轉譯Blender場景的範例任務：

```
deadline bundle submit blender_render \
     -p CondaPackages=blender=4.2 \
     -p BlenderSceneFile=/path/to/downloaded/blender-3.5-splash.blend \
     -p Frames=1
```

您可以使用截止日期雲端監視器來追蹤任務進度：

1. 在監視器中，選取您提交之任務的任務，然後選取檢視日誌的選項。

1. 在日誌檢視的右側，選取**啟動 Conda** 工作階段動作。

您可以看到 動作在為佇列環境設定的兩個 conda 通道中搜尋 Blender 4.2，並在 S3 通道中找到套件。

# 建立 的 conda 組建配方 Autodesk Maya
<a name="create-conda-recipe-maya"></a>

您可以將商業應用程式封裝為 conda 套件。在[建立 的 conda 建置配方Blender](https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/conda-package.html#create-conda-recipe-blender)中，您已了解如何封裝以簡單可重新放置的封存檔案和開放原始碼授權條款提供的應用程式。商業應用程式通常透過安裝程式分發，並且可能要搭配授權管理系統使用。

下列清單是以[為應用程式或外掛程式建立 conda 套件所涵蓋的基本概念為基礎，](https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/conda-package.html)其需求通常與封裝商業應用程式相關。子項目符號中的詳細資訊說明如何將準則套用至 Maya。
+ 了解應用程式的授權權利和限制。您可能需要設定授權管理系統。如果應用程式不包含強制執行，您將需要根據您的權利來設定您的陣列。
  + 閱讀[Autodesk有關 雲端權利的訂閱優勢常見問答集](https://www.autodesk.com/support/technical/article/caas/sfdcarticles/sfdcarticles/Subscription-Benefits-FAQ-Cloud-Rights.html)，以了解Maya可能適用於您的 雲端權利。視需要設定您的截止日期雲端陣列。
  + Autodesk 產品依賴名為 的檔案`ProductInformation.pit`。此檔案的大多數組態都需要管理員存取系統，該系統不適用於服務受管機群。精簡型用戶端的產品功能提供可重新定位的方式來處理此問題。如需進一步了解，請參閱 [ Maya 和 MotionBuilder 的精簡型用戶端授權](https://www.autodesk.com/support/technical/article/caas/tsarticles/ts/2zqRBCuGDrcPZDzULJQ27p.html)。
+ 有些應用程式取決於未安裝在服務受管機群工作者主機上的程式庫，因此套件必須提供這些程式庫。這可以直接在應用程式套件中，或放在單獨的相依性套件中。
  + Maya 取決於許多這類程式庫，包括 freetype 和 fontconfig。當這些程式庫可在系統套件管理員中使用時，例如 `dnf` AL2023 的 ，您可以使用它做為應用程式的來源。由於這些 RPM 套件並非建置為可重新定位，因此您將需要使用 等工具`patchelf`，以確保相依性在Maya安裝字首內解析。
+ 安裝可能需要管理員存取權。由於服務受管機群不提供管理員存取權，因此您必須在具有此存取權的系統上執行安裝。然後，建立套件建置任務使用所需的檔案封存。
  + 的Windows安裝程式Maya需要管理員存取權，因此為其建置 conda 套件需要手動程序，才能先建立此類封存。
+ 應用程式組態，包括外掛程式如何註冊，可以在作業系統或使用者層級定義。放置在 conda 虛擬環境中時，外掛程式需要一種方式，以包含的方式與應用程式整合，且絕不會在虛擬環境字首之外寫入檔案或其他資料。我們建議您從應用程式的 conda 套件進行設定。
  + 範例Maya套件會定義環境變數`MAYA_NO_HOME=1`，將其與使用者層級組態隔離，並將模組搜尋路徑新增至 ，`MAYA_MODULE_PATH`以便個別封裝的外掛程式可以從虛擬環境內整合。範例MtoA套件會將 .mod 檔案放在其中一個目錄中，以便在Maya啟動時載入。

**撰寫配方中繼資料**

1. 在瀏覽器或儲存庫本機複製的文字編輯器中開啟 GitHub [ deadline-cloud-samples/conda\$1recipes/maya-2025](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/maya-2025) 目錄。

   檔案`deadline-cloud.yaml`說明要為 建置套件的 conda 建置平台，以及從何處取得應用程式。配方範例會同時指定 Linux和 組Windows建，而且預設只會Linux提交 。

1. 從Autodesk登入下載完整Maya安裝程式。對於 Linux，套件建置可以直接使用封存，因此請將其直接放入 `conda_recipes/archive_files`目錄。對於 Windows，安裝程式需要管理員存取權才能執行。您需要執行安裝程式，並將必要的檔案收集到您要使用的套件配方封存中。配方中的 [ README.md](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-2025/README.md) 檔案會記錄可重複的程序來建立此成品。此程序使用新啟動的 Amazon EC2 執行個體，為安裝提供一個乾淨的環境，然後您可以在儲存結果後終止。若要封裝需要管理員存取權的其他應用程式，您可以在決定應用程式所需的檔案集後遵循類似的程序。

1. 開啟 [ recipe/recipe.yaml](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-2025/recipe/recipe.yaml) 和 [ recipe/meta.yaml](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-2025/recipe/meta.yaml) 檔案，以檢閱或編輯 rattler-build 和 conda-build 的設定。您可以為要封裝的應用程式設定套件名稱和版本。

   **來源**區段包含封存的參考，包括檔案的 sha256 雜湊。每當您變更這些檔案時，例如新版本，您將需要計算和更新這些值。

   **建置**區段主要包含關閉預設二進位重新定位選項的選項，因為自動機制無法針對套件使用的特定程式庫和二進位目錄正常運作。

   最後，**關於** 區段可讓您輸入應用程式的一些中繼資料，可用於瀏覽或處理 conda 頻道的內容。

**撰寫套件建置指令碼**

1. Maya 範例 conda 建置配方中的套件建置指令碼包含註解，說明指令碼執行的步驟。閱讀註解和命令以探索下列項目：
   + 配方如何處理來自 的 RPM 檔案 Autodesk
   + 配方套用的變更可讓安裝重新定位至配方安裝所在的 conda 虛擬環境
   + 配方如何設定公用程式變數`MAYA_VERSION`，例如 `MAYA_LOCATION`和您的軟體可用來了解Maya正在執行的 。

1. 對於 Linux，開啟 [ recipe/build.sh](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-2025/recipe/build.sh) 檔案以檢閱或編輯套件建置指令碼。

   針對 Windows，開啟 [ recipe/build\$1win.sh](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-2025/recipe/build_win.sh) 檔案以檢閱或編輯套件建置指令碼。

**提交建置Maya套件的任務**

1. 在複製的 GitHub [deadline-cloud-samples](https://github.com/aws-deadline/deadline-cloud-samples) 儲存庫中輸入`conda_recipes`目錄。

1. 請確定您的截止日期雲端陣列已針對您的截止日期雲端 CLI 設定。如果您遵循[使用 Amazon S3 建立 conda 頻道](https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/configure-jobs-s3-channel.html)的步驟，則應該為您的 CLI 設定您的陣列。

1. 執行下列命令來提交同時建置 Linux和 Windows套件的任務。

   ` ./submit-package-job maya-2025 --all-platforms`

# 建立Autodesk Maya to Arnold (MtoA)外掛程式的 conda 組建配方
<a name="create-conda-recipe-mtoa-plugin"></a>

您可以將商業應用程式的外掛程式封裝為 conda 套件。外掛程式是動態載入的程式庫，使用應用程式提供的應用程式二進位界面 (ABI) 來擴展該應用程式的功能。Maya to Arnold (MtoA) 外掛程式會將Arnold轉譯器新增為 中的選項Maya。
+ MtoA 範例建置配方取決於 **Maya**套件，並使用 版本的`==`限制條件。
+ Maya 套件會在虛擬環境中設定Maya模組路徑 `$PREFIX/usr/autodesk/maya$MAYA_VERSION/modules`，讓外掛程式放入`.mod`檔案。MtoA 範例建置配方`mtoa.mod`會在此目錄中建立 檔案。

**撰寫配方中繼資料**

1. 在瀏覽器或儲存庫本機複製的文字編輯器中開啟 GitHub [ deadline-cloud-samples/conda\$1recipes/maya-mtoa-2025](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/maya-mtoa-2025) 目錄。

   配方遵循與 Maya conda 建置配方相同的模式，並使用相同的來源封存來安裝外掛程式。

1. 開啟 [ recipe/recipe.yaml ](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-mtoa-2025/recipe/recipe.yaml)和 [ recipe/meta.yaml](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-mtoa-2025/recipe/meta.yaml) 檔案，以檢閱或編輯 rattler-build 和 conda-build 的設定。這些檔案會在套件建置`maya`期間和建立虛擬環境以執行外掛程式時指定對 的相依性。

**撰寫套件建置指令碼**
+ MtoA 範例 conda 建置配方中的套件建置指令碼包含註解，說明指令碼執行的步驟。閱讀註解和命令，以了解配方如何在Maya套件指定的`mtoa.mod`目錄中安裝MtoA和建立檔案。

  Arnold 和 Maya使用相同的授權技術，因此 Maya conda 建置配方已包含 所需的資訊Arnold。

  Linux 和 Windows 組建指令碼之間的差異類似於 Maya conda 組建配方的差異。

**提交建置Maya MtoA外掛程式套件的任務**

1. 在複製的 GitHub [deadline-cloud-samples](https://github.com/aws-deadline/deadline-cloud-samples) 儲存庫中輸入`conda_recipes`目錄。

1. 請確定您已為上一節的Maya主機應用程式建置套件。

1. 請確定您的截止日期雲端陣列已針對您的截止日期雲端 CLI 設定。如果您遵循[使用 Amazon S3 建立 conda 頻道](https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/configure-jobs-s3-channel.html)的步驟，則應該為您的 CLI 設定您的陣列。

1. 執行下列命令來提交同時建置 Linux和 Windows套件的任務。

   ` ./submit-package-job maya-mtoa-2025 --all-platforms`

# 使用Maya轉譯任務測試套件
<a name="submit-render-maya-mtoa"></a>

在建置 Maya 2025 和 MtoA套件之後，您可以提交任務以使用套件進行轉譯。具有任務套件範例的 [ 轉盤Maya/Arnold](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/turntable_with_maya_arnold)會使用 Maya和 轉譯動畫Arnold。此範例也會使用 FFmpeg 來編碼影片。您可以將 conda-forge 頻道新增至 `CondaChannels` conda 佇列環境中的預設清單，以提供`ffmpeg`套件的來源。

從您 git 複製的 [deadline-cloud-samples](https://github.com/aws-deadline/deadline-cloud-samples) `job_bundles`目錄中，執行下列命令。

```
deadline bundle submit turntable_with_maya_arnold
```

您可以使用截止日期雲端監視器來追蹤任務進度：

1. 在監視器中，選取您提交之任務的任務，然後選取檢視日誌的選項。

1. 在日誌檢視的右側，選取**啟動 Conda** 工作階段動作。

您可以看到 動作在針對佇列環境設定的 conda 通道maya-mtoa中搜尋 maya和 ，並在 S3 通道中找到套件。

# 使用截止日期雲端自動化套件建置
<a name="automate-package-builds"></a>

對於 CI/CD 工作流程或當您需要為多個作業系統建置套件時，您可以建立截止日期雲端套件建置佇列。佇列排程在機群上建置任務，這會建置套件並將其發佈到您的 Amazon Simple Storage Service (Amazon S3) Conda 頻道。這可簡化維護所有所需組態中軟體版本的持續套件建置。

您可以使用 AWS CloudFormation (CloudFormation) 範本，或從截止日期雲端主控台手動建立套件建置佇列。 CloudFormation 範本會使用生產佇列和已設定的套件建置佇列來部署完整的陣列。從主控台建立佇列可讓您進一步控制個別設定。

## 使用 建立套件建置佇列 CloudFormation
<a name="s3-channel-create-queue-cfn"></a>

您可以使用 CloudFormation 範本來建立包含套件建置佇列的截止日期雲端陣列。範本會使用私有 Amazon S3 Conda 頻道設定生產佇列和套件建置佇列。

部署範本之前，請建立 Amazon S3 儲存貯體以保留任務附件和您的 conda 頻道。您可以從 [Amazon S3 主控台](https://console.aws.amazon.com/s3/)建立儲存貯體。部署範本時，您需要儲存貯體名稱。

**部署 CloudFormation 範本**

1. 從 上的 [Deadline Cloud 範例](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/cloudformation/farm_templates/starter_farm)儲存庫下載 [deadline-cloud-starter-farm-template.yaml](https://github.com/aws-deadline/deadline-cloud-samples/raw/mainline/cloudformation/farm_templates/starter_farm/deadline-cloud-starter-farm-template.yaml) 範本GitHub。

1. 從[CloudFormation 主控台](https://console.aws.amazon.com/cloudformation/)中，選擇**建立堆疊**，然後選擇**使用新資源 （標準）**。

1. 選取 選項以上傳範本檔案，然後上傳`deadline-cloud-starter-farm-template.yaml`檔案。

1. 輸入堆疊的名稱，例如 **StarterFarm**，並提供任務附件的 Amazon S3 儲存貯體名稱和 conda 頻道。

1. 請依照 CloudFormation 主控台步驟完成堆疊建立。

如需範本參數和自訂選項的詳細資訊，請參閱 上 Deadline Cloud 範例儲存庫中的[入門陣列 README](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/cloudformation/farm_templates/starter_farm)GitHub。

## 從主控台建立套件建置佇列
<a name="s3-channel-create-queue"></a>

遵循*在截止日期雲端使用者指南*中[建立佇列](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/create-queue.html)中的指示。進行下列變更：
+ 在步驟 5 中，選擇現有的 Amazon S3 儲存貯體。指定根資料夾名稱，例如 ，**DeadlineCloudPackageBuild**以便建置成品與您一般的截止日期雲端附件保持獨立。
+ 在步驟 6 中，您可以將套件建置佇列與現有機群建立關聯，或者如果目前的機群不適合，則可以建立全新的機群。
+ 在步驟 9 中，為套件建置佇列建立新的服務角色。您將修改許可，為佇列提供上傳套件和重新索引 conda 頻道所需的許可。

### 設定套件建置佇列許可
<a name="package-building-queue-permissions"></a>

若要允許套件建置佇列存取佇列 Amazon S3 儲存貯體中的`/Conda`字首，您必須修改佇列的角色，以授予其讀取/寫入存取權。角色需要下列許可，套件建置任務才能上傳新套件並重新索引頻道。
+ `s3:GetObject`
+ `s3:PutObject`
+ `s3:ListBucket`
+ `s3:GetBucketLocation`
+ `s3:DeleteObject`

1. 開啟截止日期雲端主控台，並導覽至套件建置佇列的佇列詳細資訊頁面。

1. 選擇佇列服務角色，然後選擇**編輯佇列**。

1. 捲動至**佇列服務角色**區段，然後在 **IAM 主控台中選擇檢視此角色**。

1. 從許可政策清單中，為您的佇列選擇 **AmazonDeadlineCloudQueuePolicy**。

1. 從**許可**索引標籤中，選擇**編輯**。

1. 將新區段新增至佇列服務角色，如下所示。將 *amzn-s3-demo-bucket* 和 *111122223333* 取代為您自己的儲存貯體和帳戶。

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

## 提交套件建置任務
<a name="automate-submit-package-job"></a>

建立套件建置佇列並設定佇列許可後，您可以提交任務來建置 conda 套件。上的 [Deadline Cloud 範例](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes#readme)儲存庫中的`submit-package-job`指令碼會GitHub提交 conda 配方的建置任務。

您需要下列項目：
+ 安裝在工作站上的[截止日期雲端 CLI](https://github.com/aws-deadline/deadline-cloud)。
+ 作用中[AWS 的截止日期雲端監控 （截止日期雲端監控）](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/working-with-deadline-monitor.html) 登入工作階段。
+ [截止日期雲端範例](https://github.com/aws-deadline/deadline-cloud-samples)儲存庫的複製。

**提交套件建置任務**

1. 開啟截止日期雲端組態 GUI，並將預設陣列和佇列設定為套件建置佇列。

   ```
   deadline config gui
   ```

1. 變更為範例儲存庫中的 `conda_recipes` 目錄。

   ```
   cd deadline-cloud-samples/conda_recipes
   ```

1. 使用配方目錄執行`submit-package-job`指令碼。下列範例會建置 Blender 4.5 配方。

   ```
   ./submit-package-job blender-4.5/
   ```

   如果配方需要您尚未下載的來源封存，指令碼會提供下載指示。下載封存並再次執行指令碼。

提交任務之後，請使用截止日期雲端監視器來檢視任務的進度和狀態。

![\[截止日期雲端監視器，顯示建置 conda 套件之任務的進度和狀態。\]](http://docs.aws.amazon.com/zh_tw/deadline-cloud/latest/developerguide/images/Conda-Figure3.png)


監視器會顯示任務的兩個步驟：建置套件，然後重新索引 conda 頻道。當您在套件建置步驟的任務上按一下滑鼠右鍵並選擇**檢視日誌**時，監視器會顯示工作階段動作：
+ **同步附件** – 複製輸入任務附件或掛載虛擬檔案系統。
+ **啟動 Conda** – 佇列環境動作。建置任務不會指定 conda 套件，因此此動作會快速完成。
+ **啟動 CondaBuild Env** – 使用建置 conda 套件和重新索引頻道所需的軟體建立 conda 虛擬環境。
+ **任務執行** – 建置套件並將結果上傳至 Amazon S3。

當動作執行時，它們會將日誌傳送至 Amazon CloudWatch (CloudWatch)。當任務完成時，選取**檢視所有任務的日誌**，以查看有關環境設定和縮減的其他日誌。