

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用截止日期云自动生成软件包
<a name="automate-package-builds"></a>

对于 CI/CD 工作流程或需要为多个操作系统构建软件包时，可以创建 Deadline Cloud 软件包生成队列。队列计划在您的队列上构建任务，队列生成软件包并将其发布到您的亚马逊简单存储服务 (Amazon S3) Simple Storage Service conda 频道。这简化了在所有必需配置中为软件版本维护持续构建软件包的过程。

您可以使用 AWS CloudFormation (CloudFormation) 模板创建包生成队列，也可以从 Deadline Cloud 控制台手动创建包构建队列。该 CloudFormation 模板部署了一个完整的服务器场，其中已配置了生产队列和包构建队列。通过控制台创建队列可以更好地控制各个设置。

## 使用创建包生成队列 CloudFormation
<a name="s3-channel-create-queue-cfn"></a>

您可以使用 CloudFormation 模板来创建包含包构建队列的 Deadline Cloud 场。该模板使用私有 Amazon S3 conda 通道配置生产队列和包生成队列。

在部署模板之前，请创建一个 Amazon S3 存储桶来存放任务附件和您的 conda 频道。您可以从 [Amazon S3 控制台](https://console.aws.amazon.com/s3/)创建存储桶。部署模板时需要存储桶名称。

**部署 CloudFormation 模板**

1. [从 Deadline Cloud 示例存储库中下载 [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) 模板。](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/cloudformation/farm_templates/starter_farm) GitHub

1. 在[CloudFormation 控制台](https://console.aws.amazon.com/cloudformation/)中，选择**创建堆栈**，然后选择**使用新资源（标准）**。

1. 选择上传模板文件的选项，然后上传该`deadline-cloud-starter-farm-template.yaml`文件。

1. 输入堆栈的名称，例如**StarterFarm**，并提供任务附件的 Amazon S3 存储桶的名称和 conda 频道。

1. 按照 CloudFormation 控制台步骤完成堆栈创建。

有关模板参数和自定义选项的更多信息，请参阅 De [adline Cloud 示例存储库中的入门农场自述文件](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/cloudformation/farm_templates/starter_farm)。GitHub

## 从控制台创建包生成队列
<a name="s3-channel-create-queue"></a>

按照《De *adline Cloud 用户指南*[》中创建队列](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/create-queue.html)中的说明进行操作。进行以下更改：
+ 在步骤 5 中，选择现有的 Amazon S3 存储桶。指定根文件夹名称（例如），**DeadlineCloudPackageBuild**以便生成工件与普通的 Deadline Cloud 附件分开。
+ 在步骤 6 中，您可以将包构建队列与现有队列相关联，或者如果当前队列不合适，则可以创建全新的队列。
+ 在步骤 9 中，为包生成队列创建一个新的服务角色。您将修改权限，为队列提供上传包和重新索引 conda 频道所需的权限。

### 配置包生成队列权限
<a name="package-building-queue-permissions"></a>

要允许包生成队列访问队列的 Amazon S3 存储桶中的`/Conda`前缀，您必须修改队列的角色以授予其 read/write 访问权限。该角色需要以下权限，以便包生成任务可以上传新包并重新编入频道索引。
+ `s3:GetObject`
+ `s3:PutObject`
+ `s3:ListBucket`
+ `s3:GetBucketLocation`
+ `s3:DeleteObject`

1. 打开 Deadline Cloud 控制台并导航到包生成队列的队列详细信息页面。

1. 选择队列服务角色，然后选择**编辑队列**。

1. 滚动至**队列服务角色**部分，然后选择在 **IAM 控制台中查看此角色**。

1. 从权限策略列表中，**AmazonDeadlineCloudQueuePolicy**为您的队列选择。

1. 从 “**权限**” 选项卡中，选择 “**编辑”**。

1. 向队列服务角色添加一个新部分，如下所示。*111122223333*用您自己的存储桶和账户替换*amzn-s3-demo-bucket*和。

   ```
   {
      "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 包。De [adline Cloud 示例](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes#readme)存储库中的`submit-package-job`脚本GitHub提交了 conda 配方的构建作业。

您需要以下项：
+ 您的工作站上安装了 De [adline Cloud CLI](https://github.com/aws-deadline/deadline-cloud)。
+ 活动的 De [AWS adline 云监视器（截止日期云监视器）](https://docs.aws.amazon.com/deadline-cloud/latest/userguide/working-with-deadline-monitor.html)登录会话。
+ Deadline [Cloud 示例](https://github.com/aws-deadline/deadline-cloud-samples)存储库的克隆。

**提交软件包生成任务**

1. 打开 Deadline Cloud 配置 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/
   ```

   如果配方需要您尚未下载的源存档，则脚本会提供下载说明。下载存档并再次运行脚本。

提交作业后，使用 Deadline Cloud 监控器查看任务的进度和状态。

![\[Deadline Cloud 监视器显示构建 conda 包的任务的进度和状态。\]](http://docs.aws.amazon.com/zh_cn/deadline-cloud/latest/developerguide/images/Conda-Figure3.png)


监视器显示了工作的两个步骤：构建软件包，然后重新索引 conda 频道。右键单击包构建步骤的任务并选择 “**查看日志**” 时，监视器会显示会话操作：
+ **同步附件**-复制输入作业附件或装载虚拟文件系统。
+ **启动 Conda** — 队列环境操作。构建任务未指定 conda 包，因此此操作很快就会完成。
+ La@@ **unch CondaBuild Env** — 使用构建 conda 包和重新索引频道所需的软件创建 conda 虚拟环境。
+ **任务运行** — 生成软件包并将结果上传到 Amazon S3。

操作运行时，它们会向 Amazon CloudWatch (CloudWatch) 发送日志。任务完成后，选择 “**查看所有任务的日志**” 以查看有关环境设置和拆卸的其他日志。