View a markdown version of this page

使用 Deadline Cloud 自动生成软件包 - 截止日期云

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

使用 Deadline Cloud 自动生成软件包

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

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

使用创建包构建队列 CloudFormation

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

在部署模板之前,创建一个 Amazon S3 存储桶来保存任务附件和您的 conda 频道。您可以从 Amazon S3 控制台创建存储桶。部署模板时需要存储桶名称。

要部署 CloudFormation 模板
  1. 从 Deadline Cloud 示例存储库下载 d eadline-cloud-starter-farm-template.yaml 模板。 https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/cloudformation/farm_templates/starter_farm GitHub

  2. CloudFormation 控制台中,选择创建堆栈,然后选择使用新资源(标准)

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

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

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

有关模板参数和自定义选项的更多信息,请参阅 Deadline Cloud 示例存储库中的入门农场自述文件。GitHub

从控制台创建包构建队列

按照 Deadl ine Cloud 用户指南创建队列中的说明进行操作。进行以下更改:

  • 在步骤 5 中,选择现有的 Amazon S3 存储桶。指定根文件夹名称,例如,以DeadlineCloudPackageBuild使构建构件与普通的 Deadline Cloud 附件分开。

  • 在步骤 6 中,您可以将包构建队列与现有队列相关联,或者如果当前队列不合适,则可以创建全新的队列。

  • 在步骤 9 中,为您的包构建队列创建新的服务角色。您将修改权限,为队列提供上传压缩包和重新索引 conda 频道所需的权限。

配置包构建队列权限

要允许包构建队列访问队列的 Amazon S3 存储桶中的/Conda前缀,您必须修改队列的角色以授予其 read/write 访问权限。该角色需要以下权限,以便软件包构建任务可以上传新包并为频道重新编入索引。

  • s3:GetObject

  • s3:PutObject

  • s3:ListBucket

  • s3:GetBucketLocation

  • s3:DeleteObject

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

  2. 选择队列服务角色,然后选择编辑队列

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

  4. 从权限策略列表中,AmazonDeadlineCloudQueuePolicy为您的队列选择。

  5. 权限” 选项卡中,选择 “编辑”

  6. 向队列服务角色添加一个新部分,如下所示。将amzn-s3-demo-bucket111122223333替换为您自己的存储桶和账户。

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

提交软件包构建任务

创建包构建队列并配置队列权限后,您可以提交任务来构建 conda 软件包。截止日期云示例存储库中的submit-package-job脚本GitHub提交了 conda 配方的构建作业。

您需要以下项:

提交软件包生成任务
  1. 打开 Deadline Cloud 配置 GUI,将默认农场和队列设置为您的包构建队列。

    deadline config gui
  2. 切换到示例存储库中的conda_recipes目录。

    cd deadline-cloud-samples/conda_recipes
  3. 使用食谱目录运行submit-package-job脚本。以下示例构建 Blender 4.5 配方。

    ./submit-package-job blender-4.5/

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

提交任务后,使用截止日期云监视器查看任务的进度和状态。

截止日期云监视器显示构建 conda 软件包的作业的进度和状态。

监视器显示了工作的两个步骤:构建软件包,然后重新索引 conda 频道。当您右键单击包构建步骤的任务并选择 “查看日志” 时,监视器会显示会话操作:

  • 同步附件 -复制输入作业附件或装载虚拟文件系统。

  • 启动 conda — 队列环境操作。构建任务未指定 conda 包,因此此操作很快完成。

  • 启动 CondaBuild Env — 使用构建 conda 包和重新索引频道所需的软件创建 conda 虚拟环境。

  • 任务运行 -生成软件包并将结果上传到 Amazon S3。

操作运行时,它们会将日志发送到亚马逊 CloudWatch (CloudWatch)。作业完成后,选择 “查看所有任务的日志” 以查看有关环境设置和拆解的其他日志。