Amazon ECS 任务定义文件。这是在文件指
TaskDefinition
令中使用其 ARN 指定的。 AppSpec
替换任务集中的容器和端口,应用程序负载均衡器或网络负载均衡器在部署期间会在其中重新路由流量。这是通过 AppSpec 文件中的
LoadBalancerInfo
指令指定的。
有关 Amazon ECS 服务的可选信息,例如运行它的平台版本、它的子网及其安全组。
可选的 Lambda 函数,在与 Amazon ECS 部署期间的生命周期事件对应的挂钩期间运行。有关更多信息,请参阅
AppSpec 亚马逊 ECS 部署的 “挂钩” 部分
。
AppSpec AWS Lambda 计算平台上的文件
对于 AWS Lambda 计算平台应用程序,该 AppSpec 文件 CodeDeploy 用于确定:
要用作验证测试的 Lambda 函数。
AppSpec 文件可以是 YAML 格式或 JSON 格式。创建部署时,您也可以将 AppSpec 文件内容直接输入 CodeDeploy 控制台。
AppSpec EC2/本地计算平台上的文件
如果您的应用程序使用 EC2 /Londest 计算平台,则该 AppSpec 文件必须是名为 YAML 格式的文件,
appspec.yml
并且必须位于应用程序源代码目录结构的根目录中。否则,部署会失败。它 CodeDeploy 用于确定:
为响应部署生命周期事件而要运行的生命周期事件挂钩。
完成 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: