

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

# AppSpec 文件结构
<a name="reference-appspec-file-structure"></a>

以下是用于部署到 Amazon Lambda 和 EC2/本地计算平台的 AppSpec 文件的高级结构。

除非另有说明，否则 YAML 格式 AppSpec 文件中的字符串值不得用引号 (“”) 括起来。

## AppSpec Amazon ECS 部署的文件结构
<a name="ecs-appspec-structure"></a>

**注意**  
这个 AppSpec 文件是用 YAML 编写的，但你可以使用相同的结构用 JSON 写一个。JSON 格式 AppSpec 文件中的字符串总是用引号 (“”) 括起来。

```
version: 0.0
resources: 
  ecs-service-specifications
hooks: 
  deployment-lifecycle-event-mappings
```

在此结构中：

** **版本** **  
本节指定 AppSpec 文件的版本。请勿更改此值。这是必需的。当前，允许的唯一值为 **0.0**。它由保留 CodeDeploy 以备将来使用。  
使用字符串指定 **version**。

** **resources** **  
此部分指定有关要部署的 Amazon ECS 应用程序的信息。  
有关更多信息，请参阅 [AppSpec Amazon ECS 部署的 “资源” 部分](reference-appspec-file-structure-resources.md#reference-appspec-file-structure-resources-ecs)。

** **hooks** **  
此部分指定用于运行特定部署生命周期事件挂钩以验证部署的 Lambda 函数。  
有关更多信息，请参阅 [用于 Amazon ECS 部署的生命周期事件挂钩的列表](reference-appspec-file-structure-hooks.md#reference-appspec-file-structure-hooks-list-ecs)。

## AppSpec Amazon Lambda 部署的文件结构
<a name="lambda-appspec-structure"></a>

**注意**  
此 AppSpec 文件是用 YAML 编写的，但您可以使用相同的结构为 JSON 的 Lambda 部署写入 AppSpec 文件。JSON 格式 AppSpec 文件中的字符串总是用引号 (“”) 括起来。

```
version: 0.0
resources: 
  lambda-function-specifications
hooks: 
  deployment-lifecycle-event-mappings
```

在此结构中：

** **版本** **  
本节指定 AppSpec 文件的版本。请勿更改此值。这是必需的。当前，允许的唯一值为 **0.0**。它由保留 CodeDeploy 以备将来使用。  
使用字符串指定 **version**。

** **resources** **  
此部分指定有关要部署的 Lambda 函数的信息。  
有关更多信息，请参阅 [AppSpec “资源” 部分（仅限 Amazon ECS 和 Amazon Lambda 部署）](reference-appspec-file-structure-resources.md)。

** **hooks** **  
此部分指定用于运行特定部署生命周期事件以验证部署的 Lambda 函数。  
有关更多信息，请参阅 [AppSpec “挂钩” 部分](reference-appspec-file-structure-hooks.md)。

## AppSpec EC2/本地部署的文件结构
<a name="server-appspec-structure"></a>

```
version: 0.0
os: operating-system-name
files:
  source-destination-files-mappings
permissions:
  permissions-specifications
hooks:
  deployment-lifecycle-event-mappings
```

在此结构中：

** **版本** **  
本节指定 AppSpec 文件的版本。请勿更改此值。这是必需的。当前，允许的唯一值为 **0.0**。它由保留 CodeDeploy 以备将来使用。  
使用字符串指定 **version**。

** **os** **  
本部分指定您部署到的实例的操作系统值。这是必需的。可以指定以下值：  
+ **linux** - 实例是 Amazon Linux, Ubuntu Server 或 RHEL 实例。
+ **windows** - 实例是 Windows Server 实例。
使用字符串指定 **os**。

** **files** **  
此部分指定应在部署的 **Install** 事件期间复制到实例的文件的名称。  
有关更多信息，请参阅 [AppSpec “文件” 部分（仅限 EC2/本地部署）](reference-appspec-file-structure-files.md)。

** **permissions** **  
此部分指定在将 `files` 部分中的文件复制到实例时，应如何向这些文件应用特殊权限（如果有）。本节仅适用于 Amazon Linux、Ubuntu Server 和 Red Hat Enterprise Linux（RHEL）实例。  
有关更多信息，请参阅[AppSpec “权限” 部分（仅限 EC2/本地部署）](reference-appspec-file-structure-permissions.md)。

** **hooks** **  
此部分指定在部署期间的特定部署生命周期事件处运行的脚本。  
有关更多信息，请参阅 [AppSpec “挂钩” 部分](reference-appspec-file-structure-hooks.md)。

**Topics**
+ [AppSpec Amazon ECS 部署的文件结构](#ecs-appspec-structure)
+ [AppSpec Amazon Lambda 部署的文件结构](#lambda-appspec-structure)
+ [AppSpec EC2/本地部署的文件结构](#server-appspec-structure)
+ [AppSpec “文件” 部分（仅限 EC2/本地部署）](reference-appspec-file-structure-files.md)
+ [AppSpec “资源” 部分（仅限 Amazon ECS 和 Amazon Lambda 部署）](reference-appspec-file-structure-resources.md)
+ [AppSpec “权限” 部分（仅限 EC2/本地部署）](reference-appspec-file-structure-permissions.md)
+ [AppSpec “挂钩” 部分](reference-appspec-file-structure-hooks.md)