

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

# 使用截止日期雲端自動化套件建置
<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)。當任務完成時，選取**檢視所有任務的日誌**，以查看有關環境設定和縮減的其他日誌。