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

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

CodeDeploy AppSpec 文件参考

本部分仅供参考。有关该 AppSpec 文件的概念性概述,请参见Application Specification Files

应用程序规范文件(AppSpec 文件)是用于管理YAML部署的JSON格式化或格式化文件。 CodeDeploy

注意

除非您正在执行EC2本地部署appspec.yml,否则必须命名 /Unlide 部署的 AppSpec 文件。有关更多信息,请参阅 创建本地部署

AppSpec Amazon ECS 计算平台上的文件

对于 Amazon ECS 计算平台应用程序,该 AppSpec 文件 CodeDeploy 用于确定:

  • 您的亚马逊ECS任务定义文件。这是在 AppSpec 文件中的TaskDefinition指令ARN中使用它来指定的。

  • 替换任务集中的容器和端口,应用程序负载均衡器或网络负载均衡器在部署期间会在其中重新路由流量。这是通过 AppSpec 文件中的LoadBalancerInfo指令指定的。

  • 有关您的 Amazon ECS 服务的可选信息,例如其运行的平台版本、子网和安全组。

  • 在与 Ama ECS zon 部署期间生命周期事件相对应的挂钩期间运行的可选 Lambda 函数。有关更多信息,请参阅 AppSpec Amazon ECS 部署的 “挂钩” 部分

AppSpec Amazon Lambda 计算平台上的文件

对于 Amazon Lambda 计算平台应用程序,该 AppSpec 文件 CodeDeploy 用于确定:

  • 要部署的 Lambda 函数版本。

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

AppSpec 文件可以是 YAML-格式化或 JSON-格式化的。创建部署时,您也可以将 AppSpec 文件内容直接输入 CodeDeploy 控制台。

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

如果您的应用程序使用 EC2 /Londest 计算平台,则该 AppSpec 文件必须是名为的YAML格式文件,appspec.yml并且必须位于应用程序源代码目录结构的根目录中。否则,部署会失败。它 CodeDeploy 用于确定:

  • 它应该从 Amazon S3 中的应用程序修订版中安装到您的实例上的内容,或者 GitHub。

  • 为响应部署生命周期事件而要运行的生命周期事件挂钩。

完成 AppSpec 文件后,将其与要部署的内容一起捆绑到存档文件(zip、tar 或压缩的 tar)中。有关更多信息,请参阅 正在处理的应用程序修订版 CodeDeploy

注意

Windows Server 实例不支持 tar 和压缩的 tar 存档文件格式(.tar 和.tar.gz)。

在您拥有捆绑的存档文件(称为修订版)后,将其上传到 Amazon S3 存储桶或 Git 存储库。 CodeDeploy 然后使用 CodeDeploy 来部署修订版。有关说明,请参阅 使用创建部署 CodeDeploy

EC2/本地计算平台部署的 appspec.yml 保存在修订版的根目录中。有关更多信息,请参阅为 EC2/本地部署添加 AppSpec 文件计划修订 CodeDeploy

AppSpec 文件间距

以下是 AppSpec 文件间距的正确格式。方括号中的数字表示各项之间必须存在的空格数。例如,[4]表示在项目之间插入四个空格。 CodeDeploy 如果 AppSpec 文件中的位置和空格数不正确,则会引发一个可能难以调试的错误。

version:[1]version-number os:[1]operating-system-name files: [2]-[1]source:[1]source-files-location [4]destination:[1]destination-files-location permissions: [2]-[1]object:[1]object-specification [4]pattern:[1]pattern-specification [4]except:[1]exception-specification [4]owner:[1]owner-account-name [4]group:[1]group-name [4]mode:[1]mode-specification [4]acls: [6]-[1]acls-specification [4]context: [6]user:[1]user-specification [6]type:[1]type-specification [6]range:[1]range-specification [4]type: [6]-[1]object-type hooks: [2]deployment-lifecycle-event-name: [4]-[1]location:[1]script-location [6]timeout:[1]timeout-in-seconds [6]runas:[1]user-name

以下是间距正确的 AppSpec 文件示例:

version: 0.0 os: linux files: - source: / destination: /var/www/html/WordPress hooks: BeforeInstall: - location: scripts/install_dependencies.sh timeout: 300 runas: root AfterInstall: - location: scripts/change_permissions.sh timeout: 300 runas: root ApplicationStart: - location: scripts/start_server.sh - location: scripts/create_test_db.sh timeout: 300 runas: root ApplicationStop: - location: scripts/stop_server.sh timeout: 300 runas: root

有关间距的更多信息,请参阅规YAML范。