AppSpec File structure - AWS CodeDeploy

AppSpec File structure

The following is the high-level structure for an AppSpec file used for deployments to AWS Lambda and EC2/On-Premises compute platforms.

A value in a YAML-formatted AppSpec file that is a string must not be wrapped in quotation marks ("") unless otherwise specified.

AppSpec file structure for Amazon ECS deployments

Note

This AppSpec file is written in YAML, but you can use the same structure to write one in JSON. A string in a JSON-formatted AppSpec file is always wrapped in quotation marks ("").

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

In this structure:

version

This section specifies the version of the AppSpec file. Do not change this value. It is required. Currently, the only allowed value is 0.0. It is reserved by CodeDeploy for future use.

Specify version with a string.

resources

This section specifies information about Amazon ECS application to deploy.

For more information, see AppSpec 'resources' section for Amazon ECS deployments.

hooks

This section specifies Lambda functions to run at specific deployment lifecycle event hooks to validate the deployment.

For more information, see List of lifecycle event hooks for an Amazon ECS deployment.

AppSpec file structure for AWS Lambda deployments

Note

This AppSpec file is written in YAML, but you can use the same structure to write an AppSpec file for a Lambda deployment in JSON. A string in a JSON-formatted AppSpec file is always wrapped in quotation marks ("").

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

In this structure:

version

This section specifies the version of the AppSpec file. Do not change this value. It is required. Currently, the only allowed value is 0.0. It is reserved by CodeDeploy for future use.

Specify version with a string.

resources

This section specifies information about the Lambda function to deploy.

For more information, see AppSpec 'resources' section (Amazon ECS and AWS Lambda deployments only).

hooks

This section specifies Lambda functions to run at specific deployment lifecycle events to validate the deployment.

For more information, see AppSpec 'hooks' section.

AppSpec file structure for EC2/On-Premises deployments

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

In this structure:

version

This section specifies the version of the AppSpec file. Do not change this value. It is required. Currently, the only allowed value is 0.0. It is reserved by CodeDeploy for future use.

Specify version with a string.

os

This section specifies the operating system value of the instance to which you deploy. It is required. The following values can be specified:

  • linux – The instance is an Amazon Linux, Ubuntu Server, or RHEL instance.

  • windows – The instance is a Windows Server instance.

Specify os with a string.

files

This section specifies the names of files that should be copied to the instance during the deployment's Install event.

For more information, see AppSpec 'files' section (EC2/On-Premises deployments only).

permissions

This section specifies how special permissions, if any, should be applied to the files in the files section as they are being copied over to the instance. This section applies to Amazon Linux, Ubuntu Server, and Red Hat Enterprise Linux (RHEL) instances only.

For more information see, AppSpec 'permissions' section (EC2/On-Premises deployments only).

hooks

This section specifies scripts to run at specific deployment lifecycle events during the deployment.

For more information, see AppSpec 'hooks' section.