本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 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 模板
-
从 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 -
在CloudFormation 控制台中
,选择创建堆栈,然后选择使用新资源(标准)。 -
选择上传模板文件的选项,然后上传该
deadline-cloud-starter-farm-template.yaml文件。 -
输入堆栈的名称,例如
StarterFarm,并提供任务附件和 conda 频道的 Amazon S3 存储桶的名称。 -
按照 CloudFormation 控制台步骤完成堆栈创建。
有关模板参数和自定义选项的更多信息,请参阅 Deadline Cloud 示例存储库中的
从控制台创建包构建队列
按照 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
-
打开 Deadline Cloud 控制台并导航到包生成队列的队列详细信息页面。
-
选择队列服务角色,然后选择编辑队列。
-
滚动至队列服务角色部分,然后选择在 IAM 控制台中查看此角色。
-
从权限策略列表中,AmazonDeadlineCloudQueuePolicy为您的队列选择。
-
从 “权限” 选项卡中,选择 “编辑” 。
-
向队列服务角色添加一个新部分,如下所示。将
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" } } },
提交软件包构建任务
创建包构建队列并配置队列权限后,您可以提交任务来构建 conda 软件包。截止日期云示例submit-package-job脚本GitHub提交了 conda 配方的构建作业。
您需要以下项:
-
在您的工作站上安装了 Deadl
ine Cloud CLI。 -
活动AWS 的最后期限云监视器(截止日期云监视器)登录会话。
-
截止日期云示例
存储库的克隆。
提交软件包生成任务
-
打开 Deadline Cloud 配置 GUI,将默认农场和队列设置为您的包构建队列。
deadline config gui -
切换到示例存储库中的
conda_recipes目录。cd deadline-cloud-samples/conda_recipes -
使用食谱目录运行
submit-package-job脚本。以下示例构建 Blender 4.5 配方。./submit-package-job blender-4.5/如果配方需要尚未下载的源存档,则脚本会提供下载说明。下载存档并再次运行脚本。
提交任务后,使用截止日期云监视器查看任务的进度和状态。
监视器显示了工作的两个步骤:构建软件包,然后重新索引 conda 频道。当您右键单击包构建步骤的任务并选择 “查看日志” 时,监视器会显示会话操作:
-
同步附件 -复制输入作业附件或装载虚拟文件系统。
-
启动 conda — 队列环境操作。构建任务未指定 conda 包,因此此操作很快完成。
-
启动 CondaBuild Env — 使用构建 conda 包和重新索引频道所需的软件创建 conda 虚拟环境。
-
任务运行 -生成软件包并将结果上传到 Amazon S3。
操作运行时,它们会将日志发送到亚马逊 CloudWatch (CloudWatch)。作业完成后,选择 “查看所有任务的日志” 以查看有关环境设置和拆解的其他日志。