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

AWS CodeDeploy 应用程序规范文件

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

有关如何创建格式正确的 AppSpec file的信息,请参阅 AWS CodeDeploy 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 用于:

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

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

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

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

AWS CodeDeploy 代理如何使用 AppSpec 文件

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

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

注意

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

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

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

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