logo
Expand description

AWS CodeDeploy

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

If you’re using the service, you’re probably looking for CodeDeployClient and CodeDeploy.

Structs

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 RawString data type.

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. BlueInstanceTerminationOption does not apply to Lambda deployments.

Information about the target to be updated by an AWS CloudFormation blue/green deployment. This target type is used for all deployments initiated by a CloudFormation stack update.

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 a Lambda function specified in a deployment.

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.

Information about deployments related to the specified deployment.

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 or ECS task set to another in two increments. The original and target Lambda function versions or ECS task sets are specified in the deployment's AppSpec file.

A configuration that shifts traffic from one version of a Lambda function or ECS task set to another in equal increments, with an equal number of minutes between each increment. The original and target Lambda function versions or ECS task sets 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, or from one Amazon ECS task set to another during an Amazon ECS 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.

Enums

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 DeleteResourcesByExternalId

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 ListTagsForResource

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 TagResource

Errors returned by UntagResource

Errors returned by UpdateApplication

Errors returned by UpdateDeploymentGroup

Traits

Trait representing the capabilities of the CodeDeploy API. CodeDeploy clients implement this trait.