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

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

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 的 “挂钩” 部分 适用于 Amazon ECS 部署的 AppSpec 文件结构 Amazon ECS 部署的 AppSpec 文件示例

上的 AppSpec 文件AWS Lambda计算平台

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

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

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

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

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

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

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

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

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

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

CodeDeploy 代理如何使用 AppSpec 文件

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

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

注意

CodeDeploy 代理未用于AWSLambda 或 Amazon ECS 部署。

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

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

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