AWS CodeDeploy
User Guide (API Version 2014-10-06)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

AWS CodeDeploy AppSpec File参考

本部分仅供参考。有关 AppSpec file的概念性概述,请参阅Application Specification Files

application specification file (AppSpec file) 是 YAML 格式或 JSON 格式文件,由 AWS CodeDeploy 用来管理部署。

AWS Lambda 计算平台上的 AppSpec 文件

如果您的应用程序使用 AWS Lambda 计算平台,则 AWS CodeDeploy 使用 AppSpec file来确定:

  • 要部署的 Lambda 函数版本。

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

AppSpec file可以采用 YAML 格式或 JSON 格式。在创建部署时,您还可以将 AppSpec file内容直接输入到 AWS CodeDeploy 控制台。

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

如果您的应用程序使用 EC2/本地 计算平台,则 AWS CodeDeploy 使用 AppSpec file来确定:

  • 应从 Amazon S3 或 GitHub 中的应用程序修订安装到您的实例的内容。

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

AppSpec file必须是名为 appspec.yml 的 YAML 格式的文件,并且必须放在应用程序源代码目录结构的根目录中。否则,部署将失败。

完成 AppSpec file之后,将此文件与要部署的内容一起捆绑到存档文件(zip、tar 或压缩的 tar)。有关更多信息,请参阅 使用 AWS CodeDeploy 的应用程序修订

注意

The tar and compressed tar archive file formats (.tar and .tar.gz) are not supported for Windows Server instances.

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

AppSpec File间距

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

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 file 的示例:

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 timeout: 300 runas: root ApplicationStop: - location: scripts/stop_server.sh timeout: 300 runas: root

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