本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
与 CodeDeploy 代理合作
重要
该 CodeDeploy 代理的 2.0.0 版正在全面推出 AWS 区域 ,可能尚未在所有地区推出。这是一种可选升级,目前只能通过命令行安装。要升级到 2.0.0 版,请参阅。使用命令行安装 CodeDeploy 代理
AWS CodeDeploy 代理是一个软件包,在实例上安装和配置后,该实例就可以在 CodeDeploy 部署中使用。
AWS 积极支持 CodeDeploy 代理的最新次要版本。有关最新发布的版本,请参阅CodeDeploy 代理的版本历史记录。
注意
只有在部署到 EC2/On-Premises 计算平台时才需要使用 CodeDeploy 代理。使用 Amazon ECS 或 AWS Lambda 计算平台的部署不需要该代理。
安装该代理时,将在实例上放置一个配置文件。此文件用于指定代理的工作方式。此配置文件指定了与实例交互 AWS CodeDeploy 时要使用的目录路径和其他设置。可以更改此文件中的某些配置选项。有关使用 CodeDeploy 代理配置文件的信息,请参见CodeDeploy 代理配置参考。
有关使用 CodeDeploy 代理的更多信息,例如安装、更新和验证版本的步骤,请参阅管理 CodeDeploy 代理操作。
主题
CodeDeploy 代理支持的操作系统
支持的 Amazon EC2 AMI 操作系统
该 CodeDeploy 代理已在以下 Amazon EC2 AMI 操作系统上进行了测试:
-
亚马逊 Linux 2023 (x86_64,aarch64)
-
亚马逊 Linux 2 (x86_64、aarch64)
-
红帽企业 Linux (RHEL) 8、9、10 (x86_64、aarch64)
-
Oracle Linux 8、9、10 (x86_64、aarch64)
-
Rocky Linux 9、10 (x86_64、aarch64)
-
CentOS Stream 9、10 (x86_64、aarch64)
-
SLES 15 (x86_64,aarch64)
-
Debian 11、12、13 (x86_64、aarch64)
-
Ubuntu Server 16.04 LTS、18.04 LTS、20.04 LTS、22.04 LTS、24.04 LTS、25.04、26.04 LTS(x86_64、aarch64)
-
Windows Server 2016、2019、2022、2025 (x86_64)
注意
以下平台仅在 CodeDeploy 代理版本 2.0.0 上进行了测试:Windows Server 2025、RHEL 10、Oracle Linux 8、9、10、Rocky Linux 9、10、CentOS Stream 9、10、SLES 15、Debian 11、12、13 和 Ubuntu Server 24.04、25.04、26.04。
该 CodeDeploy 代理以开源形式提供,以供您适应您的需求。它可与其他 Amazon EC2 AMI 操作系统配合使用。有关更多信息,请访问中的CodeDeploy 代理
支持的本地操作系统
该 CodeDeploy 代理已在以下本地操作系统上进行了测试:
-
Windows Server 2016、2019、2022、2025 (x86_64)
-
红帽企业 Linux (RHEL) 8、9、10 (x86_64、aarch64)
-
Oracle Linux 8、9、10 (x86_64、aarch64)
-
Rocky Linux 9、10 (x86_64、aarch64)
-
CentOS Stream 9、10 (x86_64、aarch64)
-
SLES 15 (x86_64,aarch64)
-
Debian 11、12、13 (x86_64、aarch64)
-
Ubuntu Server 16.04 LTS、18.04 LTS、20.04 LTS、22.04 LTS、24.04 LTS、25.04、26.04 LTS(x86_64、aarch64)
注意
以下平台仅在 CodeDeploy 代理版本 2.0.0 上进行了测试:Windows Server 2025、RHEL 10、Oracle Linux 8、9、10、Rocky Linux 9、10、CentOS Stream 9、10、SLES 15、Debian 11、12、13 和 Ubuntu Server 24.04、25.04、26.04。
该 CodeDeploy 代理以开源形式提供,以供您适应您的需求。它可与其他本地实例操作系统配合使用。有关更多信息,请访问中的CodeDeploy 代理
CodeDeploy 代理的通信协议和端口
CodeDeploy 代理使用 HTTPS 通过端口 443 进行出站通信。
当 CodeDeploy 代理在 EC2 实例上运行时,它将使用 EC2 元数据终端节点来检索与实例相关的信息。了解有关限制和授予实例元数据服务访问权限的更多信息。
CodeDeploy 代理的版本历史记录
您的实例必须运行支持的 CodeDeploy 代理版本。当前支持的最低版本为 1.8.x。
注意
我们建议使用最新版本的 CodeDeploy 代理。如果您遇到问题,请先更新到最新版本,然后再联系 Su AWS pport。有关升级信息,请参阅更新代 CodeDeploy 理。
重要
该 CodeDeploy 代理的 2.0.0 版正在全面推出 AWS 区域 ,可能尚未在所有地区推出。这是一种可选升级,目前只能通过命令行安装。要升级到 2.0.0 版,请参阅。使用命令行安装 CodeDeploy 代理
下表列出了 CodeDeploy 代理的所有版本以及每个版本中包含的功能和增强功能。
| 版本 | 发行日期 | 说明 |
|---|---|---|
|
2.0.0 |
2026 年 7 月 15 日 |
已更改: CodeDeploy 代理现在已启用 Rust-based ,并作为单个独立的原生二进制文件发布。Ruby 运行时依赖项已被删除。安装或运行代理不再需要 Ruby。默认情况下,代理与 1.8.x 版本行为兼容;除非下文另有说明,否则现有的配置文件、 AppSpec处理、生命周期挂钩语义、磁盘布局和部署结果均保持不变。 新增:扩展了对操作系统的支持,包括 Windows Server 2025、RHEL 10 和 Ubuntu Server 26.04,以及其他 Linux 发行版和 ARM (aarch64) 变体。有关使用此版本测试的平台的完整列表,请参阅CodeDeploy 代理支持的操作系统。 新增:按需代理自我更新的 新增:本地命令端口。这是一个可选的 TCP 管理接口,仅监听环回地址 (127.0.0.1),用于查询代理状态和在本地注入命令。默认情况下,它处于禁用状态,使用启用 已更改:本地部署命令现已启用 已更改:在 Linux 上,代理由本机 systemd 单元 ( 已更改(安全):TLS 证书验证始终处于启用状态,并且默认情况下禁用核心转储。 新增:可选的强化设置,您可以启用这些设置以满足自己的安全要求。默认情况下,每项设置均处于关闭状态,您可以单独启用所需的设置。您可以拒绝包含符号链接、路径遍历或不安全权限的捆绑包;限制生命周期事件挂钩的环境;以及限制代理目录和日志文件的权限。完整列表请参阅 CodeDeploy 代理配置参考。 更改:命令行安装脚本现在是用 Bash(以前是 Ruby)编写的。它需要 已更改:2.0.x 版本的安装脚本以区域 已删除: 重要:目前没有从 1.8.x 到 2.0.0 版本的自动更新路径。要升级到 2.0.0,请手动运行区域 |
|
1.8.1 |
2026 年 2 月 3 日 |
修复:S3 端点错误修复。 新增:Sectigo CA 证书已添加到 Windows CA 列表中。 |
|
1.8.0 |
2025 年 7 月 31 日 |
改动:在 Windows CodeDeploy 代理中将捆绑的 Ruby 升级到 3.2。 |
|
1.7.1 |
2024 年 11 月 14 日 |
已更改:更新了安全补丁的依赖项。 |
|
1.7.0 |
2024 年 3 月 6 日 |
新增: CodeDeploy 代理 新增:支持 Red Hat Enterprise Linux 9(RHEL 9)操作系统。 新增:在 Ubuntu Server 上支持 Ruby 版本 3.1 和 3.2。 已修复:如果 CodeDeploy 代理配置文件加载失败, CodeDeploy 代理现在会生成用户友好的错误。 改动:在 Windows CodeDeploy 代理中将 Ruby 升级到 2.7.8-1。 |
|
1.6.0 |
2023 年 3 月 30 日 |
新增:对 Ruby 3.1、3.2 的支持。 新增:对 Amazon Linux 2023 的支持。 新增:对 Windows Server 2022 的支持。 已更改:Windows Server 实例的 已删除:对 Windows Server 2016 和 Windows Server 2012 R2 的支持。 已删除:对 Amazon Linux 2018.03.x 的支持。 |
|
1.5.0 |
2023 年 3 月 3 日 |
新增:对 Ruby 3 的支持。 新增:对 Ubuntu 22.04 的支持。 已修复:启动后不久重新启动 CodeDeploy 代理会导致代理挂起的问题。 已@@ 更改:现在,如果 CodeDeploy 代理服务在运行挂钩脚本时意外重启,代理启动时将无法部署主机。此修复可让您避免在重试部署前等待 70 分钟的超时时间。 弃用通知: CodeDeploy 代理 1.5.0 是最后一个支持 Windows Server 2016 和 Windows Server 2012 R2 的版本。 已删除:在 Ubuntu 14.04 LTS、Windows Server 2008 R2 和 Windows Server 2008 R2 32 位上支持该 CodeDeploy代理。 |
|
1.4.1 |
2022 年 12 月 6 日 |
已修复:与日志记录相关的安全漏洞。 增强:改进了轮询主机命令时的日志记录。 |
|
1.4.0 |
2022 年 8 月 31 日 |
新增:对 Red Hat Enterprise Linux 8 的支持。 新增:支持 Windows 版 CodeDeploy 代理上的长文件路径。要启用长文件路径,您需要设置相应的 Windows 注册表项,然后重新启动代理。有关更多信息,请参阅 长文件路径会导致“没有这样的文件或目录”错误。 已修复:磁盘已满时解压缩操作出现问题。现在, CodeDeploy 代理会检测到解压缩的退出代码 50 已修复:会导致代理失败的问题。 已修复:钩子在边缘争用条件下超时的问题。没有脚本的钩子现在将继续运行,并且不会再导致失败或超时。 已更改: CodeDeploy 代理 改动:Windows 服务器 CodeDeploy 代理现在捆绑了 Ruby 2.7。 已更改:添加了新的环境变量,供挂钩脚本使用,具体取决于部署包的来源(Amazon S3 或 GitHub)。 有关更多信息,请参阅 挂钩的环境变量可用性。 重要弃用通知: CodeDeploy代理 1.4.0 是包含 32 位 Windows 服务器安装程序的最后一个版本。 弃用通知: CodeDeploy代理 1.4.0 是最后一个支持 Windows Server 2008 R2 的版本。 已删除:支持以下亚马逊 EC2 AMI 上的 CodeDeploy 代理:亚马逊 Linux 2014.09、2016.03、2016.09 和 2017.03。 |
|
1.3.2 |
2021 年 5 月 6 日 |
重要CodeDeploy 代理 1.3.2 地址会影响运行CVE-2018-1000201 已修复:在 Ubuntu 20.04 及更高版本上安装 CodeDeploy 代理时出现问题。 已修复:由于未正确处理相对路径,在提取压缩文件时出现间歇性问题。 新增:对 Windows 实例的 AWS PrivateLink 和 VPC 终端节点的支持。 新增: AppSpec 文件改进,如下所述。
已@@ 升级: CodeDeploy 现在使用适用于 Ruby 3.0 的 AWS SDK。 |
|
1.3.1 |
2020 年 12 月 22 日 |
已修复:导致本地实例无法启动的 1.3.0 问题。 |
|
1.3.0 |
2020 年 11 月 10 日 |
重要此版本已被弃用。 已修复:删除了不再使用的过期证书。 已@@ 修复:从使用的代理卸载脚本中删除了提示消息 AWS Systems Manager,从而可以更轻松地将主机或队列降级到代理的先前版本。 |
|
1.2.1 |
2020 年 9 月 23 日 |
已更改:将 适用于 Ruby 的 AWS SDK 依赖项从 v2 升级到 v3。 新增:对 IMDSv2 的支持。包括在 IMDSv2 http 请求失败时静默回退到 IMDSv1 的功能。 已更改:更新了安全补丁的 Rake 和 Rubyzip 依赖项。 已修复:确保代理启动时,空的 PID 文件将返回状态 |
|
1.1.2 |
2020 年 8 月 4 日 |
新增:对 Ubuntu Server 19.10 和 20.04 的支持。 注意:: 版本 19.10 已过期,Ubuntu 或不再支持该版本。 CodeDeploy 新增:改进了 Linux 和 Ubuntu 的内存效率,可以更及时地释放预留内存。 新增:与 Windows Server“静默清理”的兼容性,这会导致代理在某些情况下无响应。 新增:在清理过程中忽略非空目录,以避免部署失败。 新增:对洛杉矶(洛杉矶) AWS 本地区域的 Support 支持。 新增:从实例元数据中提取可用区以提供与 L AWS ocal Zones 的兼容性。 新增:用户现在可以在子目录中提供存档,无需将其存储在根目录中。 新增:检测到 Rubyzip 存在的、可能导致内存泄漏的问题。更新了 unzip 命令,使其在使用 Rubyzip 之前首先尝试使用系统安装的 unzip 实用程序。 新增: 已更改:现在将忽略解压缩警告,因此部署将继续进行。 |
|
1.1.0 |
2020 年 6 月 30 日 |
已更改: CodeDeploy代理的版本控制现在遵循 Ruby 标准版本控制惯例。 新增:安装和更新命令的新参数,允许从命令行安装特定代理版本。 已删除:移除了适用于 Linux 和 Ubuntu 的 CodeDeploy 代理自动更新程序。要配置 CodeDeploy 代理的自动更新,请参阅使用安装 CodeDeploy 代理 AWS Systems Manager。 |
|
1.0.1.1597 |
2018 年 11 月 15 日 |
增强: CodeDeploy 支持 Ubuntu 18.04。 增强: CodeDeploy 支持 Ruby 2.5。 增强: CodeDeploy 支持 FIPS 端点。有关联邦信息处理标准端点的更多信息,请参阅 FIPS 140-2 概述 |
|
1.0.1.1518 |
2018 年 6 月 12 日 |
增强功能:修复了 CodeDeploy 代理在接受轮询请求时关闭时导致错误的问题。 增强:添加了部署跟踪功能,该功能可防止 CodeDeploy 代理在部署进行时关闭。 增强功能:改进了删除文件时的性能。 |
|
1.0.1.1458 |
2018 年 3 月 6 日 |
注意:此版本不再受支持。如果您使用此版本,您的部署可能会失败。 增强功能:改进了证书验证,以支持更多受信任的机构。 增强:修复了在包含 BeforeInstall 生命周期事件的部署期间导致本地 CLI 失败的问题。 增强:修复了更新 CodeDeploy 代理时可能导致主动部署失败的问题。 |
|
1.0.1.1352 |
2017 年 11 月 16 日 |
注意:此版本不再受支持。如果您使用此版本,您的部署可能会失败。 功能:引入了一项新功能,用于在安装 CodeDeploy 代理的本地计算机或实例上测试和调试 EC2/On-Premises 部署。 |
|
1.0.1.1106 |
2017 年 5 月 16 日 |
注意:此版本不再受支持。如果您使用此版本,您的部署可能会失败。 功能:引入了对处理目标位置上的不作为来自最新成功部署的应用程序修订的一部分的内容的新支持。针对现有内容的部署选项现在包括保留内容、覆盖内容或使部署失败。 增强:使 CodeDeploy 代理与 适用于 Ruby 的 AWS SDK (aws-sdk-core 2.9.2)的 2.9.2 版本兼容。 |
|
1.0.1.1095 |
2017 年 3 月 29 日 |
注意:此版本不再受支持。如果您使用此版本,您的部署可能会失败。 增强:在中国(北京)地区引入了对 CodeDeploy 代理的支持。 增强功能:生命周期事件挂钩进行调用时,允许 Puppet 在 Windows Server 实例上运行。 增强功能:改进对 |
| 1.0.1.1067 | 2017 年 1 月 6 日 |
注意:此版本不再受支持。如果您使用此版本,您的部署可能会失败。 增强功能:修改了很多错误消息,以包含导致部署故障的更具体的原因。 增强功能:修复了在某些部署期间 CodeDeploy 代理无法识别要部署的正确应用程序修订的问题。 增强功能:恢复在 |
| 1.0.1.1045 | 2016 年 11 月 21 日 |
注意:此版本不再受支持。如果您使用此版本,您的部署可能会失败。 增强:使 CodeDeploy 代理与 适用于 Ruby 的 AWS SDK (aws-sdk-core 2.6.11)的 2.6.11 版本兼容。 |
| 1.0.1.1037 | 2016 年 10 月 19 日 |
注意:此版本不再受支持。如果您使用此版本,您的部署可能会失败。 亚马逊 Linux、RHEL 和 Ubuntu 服务器实例的 CodeDeploy 代理已更新,其中包含以下更改。对于 Windows Server 实例,最新版本仍为 1.0.1.998。 增强功能:该代理现在可以确定哪个 Ruby 版本安装在实例上,以使它可以使用该版本调用 |
| 1.0.1.1011.1 | 2016 年 8 月 17 日 |
注意:此版本不再受支持。如果您使用此版本,您的部署可能会失败。 增强功能:删除了由于外壳支持问题而在 1.0.1.1011 版中引入的更改。此版本代理在功能上与 2016 年 7 月 11 日发布的 1.0.1.998 版相同。 |
| 1.0.1.1011 | 2016 年 8 月 15 日 |
注意:此版本不再受支持。如果您使用此版本,您的部署可能会失败。 亚马逊 Linux、RHEL 和 Ubuntu 服务器实例的 CodeDeploy 代理已更新,其中包含以下更改。对于 Windows Server 实例,最新版本仍为 1.0.1.998。 功能:增加了对在使用 systemd init 系统的操作系统上使用 bash shell 调用 CodeDeploy 代理的支持。 增强:在 CodeDeploy 代理和 CodeDeploy 代理更新程序中启用了对所有版本的 Ruby 2.x 的支持。更新的 CodeDeploy 代理不再仅依赖于 Ruby 2.0。( CodeDeploy 代理安装程序的 deb 和 rpm 版本仍然需要 Ruby 2.0。) |
| 1.0.1.998 | 2016 年 7 月 11 日 |
注意:此版本不再受支持。如果您使用此版本,您的部署可能会失败。 增强:修复了对使用 roo t 用户以外的用户配置文件运行 CodeDeploy 代理的支持。名为 |
| 1.0.1.966 | 2016 年 6 月 16 日 |
注意:此版本不再受支持。如果您使用此版本,您的部署可能会失败。 功能:引入了对使用 roo t 用户以外的用户配置文件运行 CodeDeploy 代理的支持。 增强功能:修复了对指定您希望 CodeDeploy 代理为部署组存档的应用程序修订数量的支持。 增强功能:使 CodeDeploy 代理与 适用于 Ruby 的 AWS SDK (aws-sdk-core 2.3)的 2.3 版本兼容。 增强:修复了部署期间的 UTF-8 编码问题。 增强功能:提高了标识进程名称时的准确性。 |
| 1.0.1.950 | 2016 年 3 月 24 日 |
注意:此版本不再受支持。如果您使用此版本,您的部署可能会失败。 功能:添加了安装代理支持。 增强:更新了安装脚本,使其在已安装最新版本时不下载 CodeDeploy 代理。 |
| 1.0.1.934 | 2016 年 2 月 11 日 |
注意:此版本不再受支持。如果您使用此版本,您的部署可能会失败。 功能:引入了对指定您要 CodeDeploy 代理为部署组存档的应用程序修订数量的支持。 |
| 1.0.1.880 | 2016 年 1 月 11 日 | 注意:此版本不再受支持,可能会导致部署失败。 增强功能:使 CodeDeploy 代理与 适用于 Ruby 的 AWS SDK (aws-sdk-core 2.2)的 2.2 版本兼容。版本 2.1.2 仍受支持。 |
| 1.0.1.854 | 2015 年 11 月 17 日 | 注意:此版本不再受支持。如果您使用此版本,您的部署可能会失败。 功能:引入了对 SHA-256 哈希算法的支持。 功能:在 功能:通过使用环境变量使部署组 ID 可用。 增强:增加了对使用 Amazon 日志监控 CodeDeploy 代理 CloudWatch 日志的支持。 |
有关相关信息,请参阅下列内容:
有关 CodeDeploy 代理版本的历史记录,请参阅上的 Release 存储库 GitHub
管理 CodeDeploy 流程
CodeDeploy 代理使用 systemd
对于版本 2.0.x 及更高版本,代理仅提供本机 systemd 单元 () codedeploy-agent.service。没有/etc/init.d/codedeploy-agent脚本。systemctl用于管理代理,或使用、startstoprestart、或status子命令直接调用二进制文件。
对于 1.8.x 及更早版本,rpm 和 deb 发行版都附带启动脚本。/etc/init.d/codedeploy-agent在支持 systemd 的系统上,使用该service命令可能会无意中运行 init.d 脚本,而不是允许 systemd 管理进程。systemctl用于代理操作以避免此问题。
要管理 CodeDeploy 代理,请使用以下systemctl实用程序:
sudo systemctl start codedeploy-agent sudo systemctl stop codedeploy-agent sudo systemctl restart codedeploy-agent sudo systemctl status codedeploy-agent
应用程序修订和日志文件清理
CodeDeploy 代理会存档实例上的修订和日志文件。 CodeDeploy 代理会清理这些工件以节省磁盘空间。
应用程序修订部署日志:您可以使用代理配置文件中的:max_revisions: 选项,通过输入任何正整数来指定要存档的应用程序修订数量。 CodeDeploy 还会存档这些修订的日志文件。所有其他文件将被删除,但上次成功部署的日志文件除外。该日志文件将始终保留,即使失败的部署数量超过保留的修订数量也是如此。如果未指定任何值,则除了当前部署的修订版外,还 CodeDeploy 保留五个最新的修订版。
CodeDeploy 日志:对于 Amazon Linux、Ubuntu Server 和 RHEL 实例, CodeDeploy 代理会轮换文件夹下的日志文件。/var/log/aws/codedeploy-agent日志文件在每天 00:00:00(实例时间)或文件达到 64 MB 时(以先到者为准)轮换。如果第二次轮换发生在同一天,则代理会附加一个数字后缀(例如,codedeploy-agent.20260715.1.log)。代理会在七天后删除日志文件。已轮换日志文件的命名模式是 codedeploy-agent.。YYYYMMDD.log
CodeDeploy 代理安装的文件
CodeDeploy 代理将修订、部署历史记录和部署脚本存储在实例的根目录中。该目录的默认名称和位置是:
对于 Amazon Linux、Ubuntu Server 和 RHEL 实例为 '/opt/codedeploy-agent/deployment-root'。
对于 Windows Server 实例为 'C:\ProgramData\Amazon\CodeDeploy'。
您可以使用 CodeDeploy 代理配置文件中的 root_dir 设置来配置目录的名称和位置。有关更多信息,请参阅 CodeDeploy 代理配置参考。
下面是根目录下文件和目录结构的示例。该结构假定有 N 个部署组,每个部署组包含 N 个部署。
|--deployment-root/ |-- deployment group 1 ID | |-- deployment 1 ID | | |-- Contents and logs of the deployment's revision | |-- deployment 2 ID | | |-- Contents and logs of the deployment's revision | |-- deployment N ID | | |-- Contents and logs of the deployment's revision |-- deployment group 2 ID | |-- deployment 1 ID | | |-- bundle.tar | | |-- deployment-archive | | | | -- contents of the deployment's revision | | |-- logs | | | | -- scripts.log | |-- deployment 2 ID | | |-- bundle.tar | | |-- deployment-archive | | | | -- contents of the deployment's revision | | |-- logs | | | | -- scripts.log | |-- deployment N ID | | |-- bundle.tar | | |-- deployment-archive | | | | -- contents of the deployment's revision | | |-- logs | | | | -- scripts.log |-- deployment group N ID | |-- deployment 1 ID | | |-- Contents and logs of the deployment's revision | |-- deployment 2 ID | | |-- Contents and logs of the deployment's revision | |-- deployment N ID | | |-- Contents and logs of the deployment's revision |-- deployment-instructions | |-- [deployment group 1 ID]_cleanup | |-- [deployment group 2 ID]_cleanup | |-- [deployment group N ID]_cleanup | |-- [deployment group 1 ID]_install.json | |-- [deployment group 2 ID]_install.json | |-- [deployment group N ID]_install.json | |-- [deployment group 1 ID]_last_successful_install | |-- [deployment group 2 ID]_last_successful_install | |-- [deployment group N ID]_last_successful_install | |-- [deployment group 1 ID]_most_recent_install | |-- [deployment group 2 ID]_most_recent_install | |-- [deployment group N ID]_most_recent_install |-- deployment-logs | |-- codedeploy-agent-deployments.log
-
Deployment Group ID 文件夹代表您的每个部署组。部署组目录的名称是其 ID(例如,
acde1916-9099-7caf-fd21-012345abcdef)。每个部署组目录都包含该部署组中每次尝试的部署的一个子目录。您可以使用 batch-get-deployments 命令查找部署组 ID。
-
Deployment ID 文件夹代表部署组中的每个部署。每个部署目录的名称都是其 ID。每个文件夹都包含:
-
bundle.tar,一个压缩文件,其中包含部署修订的内容。如果要查看修订,请使用 zip 解压实用程序。
-
deployment-archive,一个目录,其中包含部署修订的内容。
-
logs,一个包含
scripts.log文件的目录。此文件列出了部署 AppSpec 文件中指定的所有脚本的输出。
如果您想查找部署文件夹,但不知道其部署 ID 或部署组 ID,则可以使用AWS CodeDeploy 控制台
或 AWS CLI 来查找它们。有关更多信息,请参阅 查看 CodeDeploy 部署详情。 部署组中可以存档的默认最大部署数为五个。达到该数量后,将来的部署将被存档,最旧的存档将被删除。您可以使用 CodeDeploy 代理配置文件中的 max_re visions 设置来更改默认值。有关更多信息,请参阅 CodeDeploy 代理配置参考。
注意
如果您想恢复已存档部署使用的硬盘空间,请将 max_revisions 设置更新为较低的数量,例如 1 或 2。下次部署会删除已存档的部署,使该数字等于您指定的数字。
-
-
deployment-instructions 包含每个部署组的四个文本文件:
-
[部署组 ID]-cleanup,一个文本文件,其中包含部署期间运行的每个命令的撤消版本。示例文件名为
acde1916-9099-7caf-fd21-012345abcdef-cleanup。 -
[Deployment Group ID]-install.json,在最近的部署过程中创建的 JSON 文件。它包含部署期间运行的命令。示例文件名为
acde1916-9099-7caf-fd21-012345abcdef-install.json。 -
[部署组 ID] _last_successful_install,一个列出上次成功部署的存档目录的文本文件。此文件是在 CodeDeploy 代理将部署应用程序中的所有文件复制到实例时创建的。 CodeDeploy 代理在下次部署时使用它来确定要运行的
BeforeInstall脚本ApplicationStop和脚本。示例文件名为acde1916-9099-7caf-fd21-012345abcdef_last_successful_install。 -
[Deployment Group ID]_most_recent_install,一个文本文件,其中列出了最近一次部署的存档目录的名称。该文件在部署中的文件成功下载时创建。[部署组 ID] _last_successful_install 文件是在此文件之后创建的,也就是将下载的文件复制到其最终目标时。示例文件名为
acde1916-9099-7caf-fd21-012345abcdef_most_recent_install。
-
-
deployment-logs 包含以下日志文件:
-
codedeploy-agent.yyyymmdd.log 文件按天创建,只要当天发生部署活动,就会创建该文件。每个日志文件都包含有关当天部署的信息。这些日志文件可能对调试权限问题等很有用。日志文件最初名为
codedeploy-agent.log。第二天,其部署日期将被插入到文件名中。例如,如果今天是 2018 年 1 月 3 日,您可以在codedeploy-agent.log中看到有关今天的所有部署的信息。明天,也就是 2018 年 1 月 4 日,日志文件将重命名为codedeploy-agent.20180103.log。 -
codedeploy-agent-deployments.log 编译每个部署的
scripts.log文件的内容。scripts.log文件位于每个logs文件夹下的Deployment ID子文件夹中。此文件中的条目前面带有部署 ID。例如,“[d-ABCDEF123]LifecycleEvent - BeforeInstall”可能是在 ID 为d-ABCDEF123的部署期间写入的。当codedeploy-agent-deployments.log达到其最大大小时, CodeDeploy 代理会继续向其写入内容,同时删除旧内容。
-