AWS CodeDeploy
用户指南 (API 版本 2014-10-06)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

本指南中的过程支持新的控制台设计。如果您选择使用较旧版本的控制台,可以在本指南中找到许多仍然适用的概念和基本过程。要访问新控制台中的帮助,请选择信息图标。

CodeDeploy 应用程序规范文件

对 CodeDeploy 唯一的application specification file (AppSpec file) 是 YAML 格式或 JSON 格式文件。AppSpec file用于将每个部署作为在文件中定义的一系列生命周期事件挂钩进行管理。

有关如何创建格式正确的 AppSpec file的信息,请参阅CodeDeploy AppSpec File 参考

上的 AppSpec 文件

如果您的应用程序使用 计算平台,则 AppSpec file也可以是 YAML 或 JSON 格式的。它还可以直接键入到控制台中的编辑器内。AppSpec file用于指定:

  • 用于将流量定向到新任务集的 Amazon ECS 服务名称以及容器名称和端口。

  • 要用作验证测试的函数。

可以在部署生命周期事件后验证 Lambda 函数。有关更多信息,请参阅用于 部署的 AppSpec 的“hooks”部分 用于 部署的 AppSpec 文件结构 用于 部署的 AppSpec File 示例

AWS Lambda 计算平台上的 AppSpec 文件

如果您的应用程序使用 AWS Lambda 计算平台,则 AppSpec file也可以是 YAML 或 JSON 格式的。它还可以直接键入到控制台中的编辑器内。AppSpec file用于指定:

  • 要部署的 AWS Lambda 函数版本。

  • 要用作验证测试的函数。

可以在部署生命周期事件后验证 Lambda 函数。有关更多信息,请参阅用于 AWS Lambda 部署的 AppSpec 的“hooks”部分

EC2/本地计算平台上的 AppSpec 文件

如果您的应用程序使用 EC2/本地 计算平台,则 AppSpec file始终是 YAML 格式的。AppSpec file用于:

  • 将应用程序修订中的源文件映射到其在实例上的目的地。

  • 为部署的文件指定自定义权限。

  • 指定要在部署过程的各个阶段在每个实例上运行的脚本。

您可以在多个单独的部署生命周期事件之后在一个实例上运行脚本。CodeDeploy 只运行在此文件中指定的脚本,但这些脚本可以调用实例上的其他脚本。您可以运行任何类型的脚本,只要该脚本受实例上运行的操作系统支持即可。有关更多信息,请参阅用于 EC2/本地部署的 AppSpec 的“hooks”部分

CodeDeploy 代理如何使用 AppSpec 文件

部署期间,CodeDeploy 代理将在 AppSpec file的 hooks 部分中查找当前事件的名称。如果找不到该事件,CodeDeploy 代理将移到下一步。如果找到该事件,CodeDeploy 代理将检索要执行的脚本列表。脚本按其在文件中的出现顺序运行。每个脚本的状态记录在实例上的 CodeDeploy 代理日志文件中。

如果脚本运行成功,则返回退出代码 0(零)。

注意

CodeDeploy 代理不用于 AWS Lambda 或 部署中。

Install 事件期间,CodeDeploy 代理使用 AppSpec file的 files 部分中定义的映射来确定要从修订复制到实例的文件夹或文件。

如果在操作系统上安装的 CodeDeploy 代理与 AppSpec file中列出的代理不匹配,则部署将失败。

有关 CodeDeploy 代理日志文件的信息,请参阅使用 CodeDeploy 代理