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

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

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 文件示例

AppSpec 文件Amazon Lambda计算平台

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

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

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

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

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

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

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

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

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

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

CodeDeploy 代理如何使用 AppSpec 文件

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

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

注意

CodeDeploy 代理未用于AmazonLambda 或亚马逊云服务器部署。

安装事件时,CodeDeploy 代理将使用filesAppSpec 文件,以确定要从修订复制到实例的文件夹或文件。

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

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