本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用截止日期云自动生成软件包
对于 CI/CD 工作流程或需要为多个操作系统构建软件包时,可以创建 Deadline Cloud 软件包生成队列。队列计划在您的队列上构建任务,队列生成软件包并将其发布到您的亚马逊简单存储服务 (Amazon S3) Simple Storage Service conda 频道。这简化了在所有必需配置中为软件版本维护持续构建软件包的过程。
您可以使用 AWS CloudFormation (CloudFormation) 模板创建包生成队列,也可以从 Deadline Cloud 控制台手动创建包构建队列。该 CloudFormation 模板部署了一个完整的服务器场,其中已配置了生产队列和包构建队列。通过控制台创建队列可以更好地控制各个设置。
使用创建包生成队列 CloudFormation
您可以使用 CloudFormation 模板来创建包含包构建队列的 Deadline Cloud 场。该模板使用私有 Amazon S3 conda 通道配置生产队列和包生成队列。
在部署模板之前,请创建一个 Amazon S3 存储桶来存放任务附件和您的 conda 频道。您可以从 Amazon S3 控制台
部署 CloudFormation 模板
-
从 Deadline Cloud 示例存储库中下载 deadline-cloud-starter-farm-template.yaml
模板。 GitHub -
在CloudFormation 控制台
中,选择创建堆栈,然后选择使用新资源(标准)。 -
选择上传模板文件的选项,然后上传该
deadline-cloud-starter-farm-template.yaml文件。 -
输入堆栈的名称,例如
StarterFarm,并提供任务附件的 Amazon S3 存储桶的名称和 conda 频道。 -
按照 CloudFormation 控制台步骤完成堆栈创建。
有关模板参数和自定义选项的更多信息,请参阅 De adline Cloud 示例存储库中的入门农场自述文件
从控制台创建包生成队列
按照《De adline 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为您的队列选择。
-
从 “权限” 选项卡中,选择 “编辑”。
-
向队列服务角色添加一个新部分,如下所示。
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" } } },
提交软件包构建任务
创建包生成队列并配置队列权限后,您可以提交任务来构建 conda 包。De adline Cloud 示例submit-package-job脚本GitHub提交了 conda 配方的构建作业。
您需要以下项:
-
您的工作站上安装了 De adline Cloud CLI
。 -
活动的 De AWS adline 云监视器(截止日期云监视器)登录会话。
-
Deadline Cloud 示例
存储库的克隆。
提交软件包生成任务
-
打开 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/如果配方需要您尚未下载的源存档,则脚本会提供下载说明。下载存档并再次运行脚本。
提交作业后,使用 Deadline Cloud 监控器查看任务的进度和状态。
监视器显示了工作的两个步骤:构建软件包,然后重新索引 conda 频道。右键单击包构建步骤的任务并选择 “查看日志” 时,监视器会显示会话操作:
-
同步附件-复制输入作业附件或装载虚拟文件系统。
-
启动 Conda — 队列环境操作。构建任务未指定 conda 包,因此此操作很快就会完成。
-
La@@ unch CondaBuild Env — 使用构建 conda 包和重新索引频道所需的软件创建 conda 虚拟环境。
-
任务运行 — 生成软件包并将结果上传到 Amazon S3。
操作运行时,它们会向 Amazon CloudWatch (CloudWatch) 发送日志。任务完成后,选择 “查看所有任务的日志” 以查看有关环境设置和拆卸的其他日志。