- 产品›
- Amazon CodeDeploy
Amazon CodeDeploy 常见问题
一般性问题
全部打开会的。Amazon CodeDeploy 可用于各种配置管理系统、持续集成和部署系统以及源代码控制系统。
概念
全部打开部署组是与您作为部署对象的应用程序相关的一组实例。您可以通过指定标签、Auto Scaling 组名称或同时指定此二者,将实例添加到部署组中。您可以为一个应用程序定义多个部署组,如分阶段测试和生产。有关标签的信息,请参阅在控制台中使用 Amazon EC2 标签。有关如何在 Auto Scaling 组中进行部署的更多信息,请参阅 Auto Scaling 集成。
部署配置是一项约束条件,决定一项部署如何通过实例在部署组中取得进展。您可以使用部署配置向多实例部署组执行零停机部署。例如,如果您的应用程序需要部署组中至少有 50% 的实例在运行中且提供流量,您可以在您的部署配置中指定这一点,从而使部署不会导致停机。如果没有与部署或者部署组相关联的部署配置,则在默认情况下,Amazon CodeDeploy 将会一次部署到一个实例中。有关部署配置的更多信息,请参阅 实例运行状况。
问:我需要为部署指定哪些参数?
您需要为部署指定 3 个参数:
- 修订版 – 指定要部署的内容。
- 部署组 – 指定部署的位置。
- 部署配置 – 可选参数,指定部署方式。
AppSpec 文件是一种配置文件,用于指定待复制文件和待执行脚本。AppSpec 文件使用 YAML 格式,您将其包含在您的修订版的根目录下。AppSpec 文件供 Amazon CodeDeploy 代理所用,并由两个部分组成。“files”部分指定了您的修订版中待复制的源文件,以及每个实例的目标文件夹。“hooks”部分指定了在部署各阶段运行的脚本的位置(作为从修订包根下起始的相对路径)。部署的各个阶段均被称为部署生命周期事件。下面是示例 AppSpec 文件。有关 AppSpec 文件的信息,包括可指定的所有选项,请参阅 AppSpec 文件参考。
version: 0.0
os: linux
files:
# 可以在“files”部分中指定一个或多个映射。
- source: /
destination: /var/www/html/WordPress
hooks:
# 使用生命周期的“hooks”部分,您可以指定部署脚本。
ApplicationStop:
# 第 1 步:如果 Apache 和 MySQL 正在运行,请将它们停止。
- location: helper_scripts/stop_server.sh
BeforeInstall:
# 第 2 步:安装 Apache 和 MySQL。
# 您可以为每个部署生命周期事件指定一个或多个脚本。
- location: deploy_hooks/puppet-apply-apache.sh
- location: deploy_hooks/puppet-apply-mysql.sh
AfterInstall:
# 第 3 步:设置权限。
- location: deploy_hooks /change_permissions.sh
timeout: 30
runas: root
# 第 4 步:启动服务器。
- location: helper_scripts/start_server.sh
timeout: 30
runas: root
| 部署生命周期事件 | 说明 |
| ApplicationStop |
这是下载修订版之前发生的第一个部署生命周期事件。用于此部署生命周期事件的 AppSpec 文件和脚本来自于上一次成功部署的修订版。
如果要顺利地停止应用程序或删除部署准备中当前已安装的软件包,您可以使用 ApplicationStop 部署生命周期事件。 |
| DownloadBundle | 在此部署生命周期事件期间,代理程序将修订版文件复制到实例上的临时位置。此部署生命周期事件是为代理程序预留的,不能用于运行用户脚本。 |
| BeforeInstall | 您可以使用 BeforeInstall 部署生命周期事件执行文件解密和当前版本的备份创建等预安装任务。
|
| Install | 在此部署生命周期事件期间,代理程序将修订版本文件从临时位置复制到最终目标文件夹。此部署生命周期事件是为代理程序预留的,不能用于运行用户脚本。 |
| AfterInstall | 您可以使用 AfterInstall 部署生命周期事件来执行应用程序配置或文件权限变更等任务。 |
| ApplicationStart | 通常情况下,您需要使用 ApplicationStart 部署生命周期事件来重新启动在 ApplicationStop 期间停止的服务。 |
| ValidateService | ValidateService 是最后一个部署生命周期事件,您可以借此机会确认已成功完成部署。
|
使用 Amazon CodeDeploy
全部打开您可以使用亚马逊云科技管理控制台、亚马逊软件开发工具包和 Amazon CodeDeploy API 来访问 Amazon CodeDeploy。
您可以使用亚马逊云科技管理控制台、亚马逊开发工具包和 Amazon CodeDeploy API 来跟踪部署状态。您还可以查看整体部署状态,并进一步深入了解每个实例的状态以及实例的每个部署生命周期事件的状态。您还可以查看任何故障所对应的日志条目,从而轻松调试部署问题,无需登录实例。