AWS CodeDeploy is a deployment service that automates application deployments to Amazon EC2 instances, on-premises instances running in your own facility, serverless AWS Lambda functions, or applications in an Amazon ECS service.
You can deploy a nearly unlimited variety of application content, such as an updated Lambda function, updated applications in an Amazon ECS service, code, web and configuration files, executables, packages, scripts, multimedia files, and so on. AWS CodeDeploy can deploy application content stored in Amazon S3 buckets, GitHub repositories, or Bitbucket repositories. You do not need to make changes to your existing code before you can use AWS CodeDeploy.
AWS CodeDeploy makes it easier for you to rapidly release new features, helps you avoid downtime during application deployment, and handles the complexity of updating your applications, without many of the risks associated with error-prone manual deployments.
AWS CodeDeploy Components
Use the information in this guide to help you work with the following AWS CodeDeploy components:
Application: A name that uniquely identifies the application you want to deploy. AWS CodeDeploy uses this name, which functions as a container, to ensure the correct combination of revision, deployment configuration, and deployment group are referenced during a deployment.
Deployment group: A set of individual instances, CodeDeploy Lambda deployment configuration settings, or an Amazon ECS service and network details. A Lambda deployment group specifies how to route traffic to a new version of a Lambda function. An Amazon ECS deployment group specifies the service created in Amazon ECS to deploy, a load balancer, and a listener to reroute production traffic to an updated containerized application. An EC2/On-premises deployment group contains individually tagged instances, Amazon EC2 instances in Amazon EC2 Auto Scaling groups, or both. All deployment groups can specify optional trigger, alarm, and rollback settings.
Deployment configuration: A set of deployment rules and deployment success and failure conditions used by AWS CodeDeploy during a deployment.
Deployment: The process and the components used when updating a Lambda function, a containerized application in an Amazon ECS service, or of installing content on one or more instances.
Application revisions: For an AWS Lambda deployment, this is an AppSpec file that specifies the Lambda function to be updated and one or more functions to validate deployment lifecycle events. For an Amazon ECS deployment, this is an AppSpec file that specifies the Amazon ECS task definition, container, and port where production traffic is rerouted. For an EC2/On-premises deployment, this is an archive file that contains source content—source code, webpages, executable files, and deployment scripts—along with an AppSpec file. Revisions are stored in Amazon S3 buckets or GitHub repositories. For Amazon S3, a revision is uniquely identified by its Amazon S3 object key and its ETag, version, or both. For GitHub, a revision is uniquely identified by its commit ID.
This guide also contains information to help you get details about the instances in your deployments, to make on-premises instances available for AWS CodeDeploy deployments, to get details about a Lambda function deployment, and to get details about Amazon ECS service deployments.
AWS CodeDeploy Information Resources
Represents the input of, and adds tags to, an on-premises instance operation.
Information about an alarm.
Information about alarms associated with the deployment group.
A revision for an AWS Lambda or Amazon ECS deployment that is a YAML-formatted or JSON-formatted string. For AWS Lambda and Amazon ECS deployments, the revision is the same as the AppSpec file. This method replaces the deprecated
Information about an application.
Information about a configuration for automatically rolling back to a previous version of an application revision when a deployment is not completed successfully.
Information about an Auto Scaling group.
Represents the input of a BatchGetApplicationRevisions operation.
Represents the output of a BatchGetApplicationRevisions operation.
Represents the input of a BatchGetApplications operation.
Represents the output of a BatchGetApplications operation.
Represents the input of a BatchGetDeploymentGroups operation.
Represents the output of a BatchGetDeploymentGroups operation.
Represents the input of a BatchGetDeploymentInstances operation.
Represents the output of a BatchGetDeploymentInstances operation.
Represents the input of a BatchGetDeployments operation.
Represents the output of a BatchGetDeployments operation.
Represents the input of a BatchGetOnPremisesInstances operation.
Represents the output of a BatchGetOnPremisesInstances operation.
Information about blue/green deployment options for a deployment group.
Information about whether instances in the original environment are terminated when a blue/green deployment is successful.
A client for the CodeDeploy API.
Represents the input of a CreateApplication operation.
Represents the output of a CreateApplication operation.
Represents the input of a CreateDeploymentConfig operation.
Represents the output of a CreateDeploymentConfig operation.
Represents the input of a CreateDeploymentGroup operation.
Represents the output of a CreateDeploymentGroup operation.
Represents the input of a CreateDeployment operation.
Represents the output of a CreateDeployment operation.
Represents the input of a DeleteApplication operation.
Represents the input of a DeleteDeploymentConfig operation.
Represents the input of a DeleteDeploymentGroup operation.
Represents the output of a DeleteDeploymentGroup operation.
Represents the input of a DeleteGitHubAccount operation.
Represents the output of a DeleteGitHubAccountToken operation.
Information about a deployment configuration.
Information about a deployment group.
Information about a deployment.
Information about the deployment status of the instances in the deployment.
Information about how traffic is rerouted to instances in a replacement environment in a blue/green deployment.
Information about the type of deployment, either in-place or blue/green, you want to run and whether to route deployment traffic behind a load balancer.
Information about the deployment target.
Represents the input of a DeregisterOnPremisesInstance operation.
Diagnostic information about executable scripts that are part of a deployment.
Information about an EC2 tag filter.
Information about groups of EC2 instance tags.
Contains the service and cluster names used to identify an Amazon ECS deployment's target.
Information about the target of an Amazon ECS deployment.
Information about a set of Amazon ECS tasks in an AWS CodeDeploy deployment. An Amazon ECS task set includes details such as the desired number of tasks, how many tasks are running, and whether the task set serves production traffic. An AWS CodeDeploy application that uses the Amazon ECS compute platform deploys a containerized application in an Amazon ECS service as a task set.
Information about a load balancer in Elastic Load Balancing to use in a deployment. Instances are registered directly with a load balancer, and traffic is routed to the load balancer.
Information about a deployment error.
Information about an application revision.
Represents the input of a GetApplication operation.
Represents the output of a GetApplication operation.
Represents the input of a GetApplicationRevision operation.
Represents the output of a GetApplicationRevision operation.
Represents the input of a GetDeploymentConfig operation.
Represents the output of a GetDeploymentConfig operation.
Represents the input of a GetDeploymentGroup operation.
Represents the output of a GetDeploymentGroup operation.
Represents the input of a GetDeployment operation.
Represents the input of a GetDeploymentInstance operation.
Represents the output of a GetDeploymentInstance operation.
Represents the output of a GetDeployment operation.
Represents the input of a GetOnPremisesInstance operation.
Represents the output of a GetOnPremisesInstance operation.
Information about the location of application artifacts stored in GitHub.
Information about the instances that belong to the replacement environment in a blue/green deployment.
Information about an on-premises instance.
Information about an instance in a deployment.
A target Amazon EC2 or on-premises instance during a deployment that uses the EC2/On-premises compute platform.
Information about the target AWS Lambda function during an AWS Lambda deployment.
Information about the most recent attempted or successful deployment to a deployment group.
Information about a deployment lifecycle event.
Represents the input of a ListApplicationRevisions operation.
Represents the output of a ListApplicationRevisions operation.
Represents the input of a ListApplications operation.
Represents the output of a ListApplications operation.
Represents the input of a ListDeploymentConfigs operation.
Represents the output of a ListDeploymentConfigs operation.
Represents the input of a ListDeploymentGroups operation.
Represents the output of a ListDeploymentGroups operation.
Represents the input of a ListDeploymentInstances operation.
Represents the output of a ListDeploymentInstances operation.
Represents the input of a ListDeployments operation.
Represents the output of a ListDeployments operation.
Represents the input of a ListGitHubAccountTokenNames operation.
Represents the output of a ListGitHubAccountTokenNames operation.
Represents the input of a ListOnPremisesInstances operation.
Represents the output of the list on-premises instances operation.
Information about the Elastic Load Balancing load balancer or target group used in a deployment.
Information about minimum healthy instance.
Information about groups of on-premises instance tags.
A revision for an AWS Lambda deployment that is a YAML-formatted or JSON-formatted string. For AWS Lambda deployments, the revision is the same as the AppSpec file.
Represents the input of a RegisterApplicationRevision operation.
Represents the input of the register on-premises instance operation.
Represents the input of a RemoveTagsFromOnPremisesInstances operation.
Information about an application revision.
Information about the location of an application revision.
Information about a deployment rollback.
Information about the location of application artifacts stored in Amazon S3.
Represents the input of a StopDeployment operation.
Represents the output of a StopDeployment operation.
Information about a tag.
Information about an on-premises instance tag filter.
Information about a target group in Elastic Load Balancing to use in a deployment. Instances are registered as targets in a target group, and traffic is routed to the target group.
Information about two target groups and how traffic is routed during an Amazon ECS deployment. An optional test traffic route can be specified.
Information about the instances to be used in the replacement environment in a blue/green deployment.
A configuration that shifts traffic from one version of a Lambda function to another in two increments. The original and target Lambda function versions are specified in the deployment's AppSpec file.
A configuration that shifts traffic from one version of a Lambda function to another in equal increments, with an equal number of minutes between each increment. The original and target Lambda function versions are specified in the deployment's AppSpec file.
Information about a time range.
Information about a listener. The listener contains the path used to route traffic that is received from the load balancer to a target group.
The configuration that specifies how traffic is shifted from one version of a Lambda function to another version during an AWS Lambda deployment.
Information about notification triggers for the deployment group.
Represents the input of an UpdateApplication operation.
Represents the input of an UpdateDeploymentGroup operation.
Represents the output of an UpdateDeploymentGroup operation.
Errors returned by AddTagsToOnPremisesInstances
Errors returned by BatchGetApplicationRevisions
Errors returned by BatchGetApplications
Errors returned by BatchGetDeploymentGroups
Errors returned by BatchGetDeploymentInstances
Errors returned by BatchGetDeploymentTargets
Errors returned by BatchGetDeployments
Errors returned by BatchGetOnPremisesInstances
Errors returned by ContinueDeployment
Errors returned by CreateApplication
Errors returned by CreateDeploymentConfig
Errors returned by CreateDeployment
Errors returned by CreateDeploymentGroup
Errors returned by DeleteApplication
Errors returned by DeleteDeploymentConfig
Errors returned by DeleteDeploymentGroup
Errors returned by DeleteGitHubAccountToken
Errors returned by DeregisterOnPremisesInstance
Errors returned by GetApplication
Errors returned by GetApplicationRevision
Errors returned by GetDeploymentConfig
Errors returned by GetDeployment
Errors returned by GetDeploymentGroup
Errors returned by GetDeploymentInstance
Errors returned by GetDeploymentTarget
Errors returned by GetOnPremisesInstance
Errors returned by ListApplicationRevisions
Errors returned by ListApplications
Errors returned by ListDeploymentConfigs
Errors returned by ListDeploymentGroups
Errors returned by ListDeploymentInstances
Errors returned by ListDeploymentTargets
Errors returned by ListDeployments
Errors returned by ListGitHubAccountTokenNames
Errors returned by ListOnPremisesInstances
Errors returned by PutLifecycleEventHookExecutionStatus
Errors returned by RegisterApplicationRevision
Errors returned by RegisterOnPremisesInstance
Errors returned by RemoveTagsFromOnPremisesInstances
Errors returned by SkipWaitTimeForInstanceTermination
Errors returned by StopDeployment
Errors returned by UpdateApplication
Errors returned by UpdateDeploymentGroup
Trait representing the capabilities of the CodeDeploy API. CodeDeploy clients implement this trait.