CodeDeploy 应用程序规范(AppSpec)文件 - Amazon CodeDeploy
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

CodeDeploy 应用程序规范(AppSpec)文件

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

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

Amazon ECS 计算平台上的 AppSpec 文件

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

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

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

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

Amazon Lambda 计算平台上的 AppSpec 文件

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

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

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

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

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

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

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

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

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

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

CodeDeploy 代理如何使用 AppSpec 文件

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

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

注意

Amazon Lambda 或 Amazon ECS 部署中不使用 CodeDeploy 代理。

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

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

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