Expand description
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§
- AddTags
ToOn Premises Instances Input Represents the input of, and adds tags to, an on-premises instance operation.
- Alarm
Information about an alarm.
- Alarm
Configuration Information about alarms associated with the deployment group.
- AppSpec
Content 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.- Application
Info Information about an application.
- Auto
Rollback Configuration Information about a configuration for automatically rolling back to a previous version of an application revision when a deployment is not completed successfully.
- Auto
Scaling Group Information about an Auto Scaling group.
- Batch
GetApplication Revisions Input Represents the input of a
BatchGetApplicationRevisions
operation.- Batch
GetApplication Revisions Output Represents the output of a
BatchGetApplicationRevisions
operation.- Batch
GetApplications Input Represents the input of a
BatchGetApplications
operation.- Batch
GetApplications Output Represents the output of a
BatchGetApplications
operation.- Batch
GetDeployment Groups Input Represents the input of a
BatchGetDeploymentGroups
operation.- Batch
GetDeployment Groups Output Represents the output of a
BatchGetDeploymentGroups
operation.- Batch
GetDeployment Instances Input Represents the input of a
BatchGetDeploymentInstances
operation.- Batch
GetDeployment Instances Output Represents the output of a
BatchGetDeploymentInstances
operation.- Batch
GetDeployment Targets Input - Batch
GetDeployment Targets Output - Batch
GetDeployments Input Represents the input of a
BatchGetDeployments
operation.- Batch
GetDeployments Output Represents the output of a
BatchGetDeployments
operation.- Batch
GetOn Premises Instances Input Represents the input of a
BatchGetOnPremisesInstances
operation.- Batch
GetOn Premises Instances Output Represents the output of a
BatchGetOnPremisesInstances
operation.- Blue
Green Deployment Configuration Information about blue/green deployment options for a deployment group.
- Blue
Instance Termination Option Information about whether instances in the original environment are terminated when a blue/green deployment is successful.
BlueInstanceTerminationOption
does not apply to Lambda deployments.- Cloud
Formation Target 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.
- Code
Deploy Client - A client for the CodeDeploy API.
- Continue
Deployment Input - Create
Application Input Represents the input of a
CreateApplication
operation.- Create
Application Output Represents the output of a
CreateApplication
operation.- Create
Deployment Config Input Represents the input of a
CreateDeploymentConfig
operation.- Create
Deployment Config Output Represents the output of a
CreateDeploymentConfig
operation.- Create
Deployment Group Input Represents the input of a
CreateDeploymentGroup
operation.- Create
Deployment Group Output Represents the output of a
CreateDeploymentGroup
operation.- Create
Deployment Input Represents the input of a
CreateDeployment
operation.- Create
Deployment Output Represents the output of a
CreateDeployment
operation.- Delete
Application Input Represents the input of a
DeleteApplication
operation.- Delete
Deployment Config Input Represents the input of a
DeleteDeploymentConfig
operation.- Delete
Deployment Group Input Represents the input of a
DeleteDeploymentGroup
operation.- Delete
Deployment Group Output Represents the output of a
DeleteDeploymentGroup
operation.- Delete
GitHub Account Token Input Represents the input of a
DeleteGitHubAccount
operation.- Delete
GitHub Account Token Output Represents the output of a
DeleteGitHubAccountToken
operation.- Delete
Resources ByExternal IdInput - Delete
Resources ByExternal IdOutput - Deployment
Config Info Information about a deployment configuration.
- Deployment
Group Info Information about a deployment group.
- Deployment
Info Information about a deployment.
- Deployment
Overview Information about the deployment status of the instances in the deployment.
- Deployment
Ready Option Information about how traffic is rerouted to instances in a replacement environment in a blue/green deployment.
- Deployment
Style 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.
- Deployment
Target Information about the deployment target.
- Deregister
OnPremises Instance Input Represents the input of a
DeregisterOnPremisesInstance
operation.- Diagnostics
Diagnostic information about executable scripts that are part of a deployment.
- EC2Tag
Filter Information about an EC2 tag filter.
- EC2Tag
Set Information about groups of EC2 instance tags.
- ECSService
Contains the service and cluster names used to identify an Amazon ECS deployment's target.
- ECSTarget
Information about the target of an Amazon ECS deployment.
- ECSTask
Set 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.
- ELBInfo
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.
- Error
Information Information about a deployment error.
- Generic
Revision Info Information about an application revision.
- GetApplication
Input Represents the input of a
GetApplication
operation.- GetApplication
Output Represents the output of a
GetApplication
operation.- GetApplication
Revision Input Represents the input of a
GetApplicationRevision
operation.- GetApplication
Revision Output Represents the output of a
GetApplicationRevision
operation.- GetDeployment
Config Input Represents the input of a
GetDeploymentConfig
operation.- GetDeployment
Config Output Represents the output of a
GetDeploymentConfig
operation.- GetDeployment
Group Input Represents the input of a
GetDeploymentGroup
operation.- GetDeployment
Group Output Represents the output of a
GetDeploymentGroup
operation.- GetDeployment
Input Represents the input of a
GetDeployment
operation.- GetDeployment
Instance Input Represents the input of a
GetDeploymentInstance
operation.- GetDeployment
Instance Output Represents the output of a
GetDeploymentInstance
operation.- GetDeployment
Output Represents the output of a
GetDeployment
operation.- GetDeployment
Target Input - GetDeployment
Target Output - GetOn
Premises Instance Input Represents the input of a
GetOnPremisesInstance
operation.- GetOn
Premises Instance Output Represents the output of a
GetOnPremisesInstance
operation.- GitHub
Location Information about the location of application artifacts stored in GitHub.
- Green
Fleet Provisioning Option Information about the instances that belong to the replacement environment in a blue/green deployment.
- Instance
Info Information about an on-premises instance.
- Instance
Summary Information about an instance in a deployment.
- Instance
Target A target Amazon EC2 or on-premises instance during a deployment that uses the EC2/On-premises compute platform.
- Lambda
Function Info Information about a Lambda function specified in a deployment.
- Lambda
Target Information about the target AWS Lambda function during an AWS Lambda deployment.
- Last
Deployment Info Information about the most recent attempted or successful deployment to a deployment group.
- Lifecycle
Event Information about a deployment lifecycle event.
- List
Application Revisions Input Represents the input of a
ListApplicationRevisions
operation.- List
Application Revisions Output Represents the output of a
ListApplicationRevisions
operation.- List
Applications Input Represents the input of a
ListApplications
operation.- List
Applications Output Represents the output of a ListApplications operation.
- List
Deployment Configs Input Represents the input of a
ListDeploymentConfigs
operation.- List
Deployment Configs Output Represents the output of a
ListDeploymentConfigs
operation.- List
Deployment Groups Input Represents the input of a
ListDeploymentGroups
operation.- List
Deployment Groups Output Represents the output of a
ListDeploymentGroups
operation.- List
Deployment Instances Input Represents the input of a
ListDeploymentInstances
operation.- List
Deployment Instances Output Represents the output of a
ListDeploymentInstances
operation.- List
Deployment Targets Input - List
Deployment Targets Output - List
Deployments Input Represents the input of a
ListDeployments
operation.- List
Deployments Output Represents the output of a
ListDeployments
operation.- List
GitHub Account Token Names Input Represents the input of a
ListGitHubAccountTokenNames
operation.- List
GitHub Account Token Names Output Represents the output of a
ListGitHubAccountTokenNames
operation.- List
OnPremises Instances Input Represents the input of a
ListOnPremisesInstances
operation.- List
OnPremises Instances Output Represents the output of the list on-premises instances operation.
- List
Tags ForResource Input - List
Tags ForResource Output - Load
Balancer Info Information about the Elastic Load Balancing load balancer or target group used in a deployment.
- Minimum
Healthy Hosts Information about minimum healthy instance.
- OnPremises
TagSet Information about groups of on-premises instance tags.
- PutLifecycle
Event Hook Execution Status Input - PutLifecycle
Event Hook Execution Status Output - RawString
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.
- Register
Application Revision Input Represents the input of a RegisterApplicationRevision operation.
- Register
OnPremises Instance Input Represents the input of the register on-premises instance operation.
- Related
Deployments Information about deployments related to the specified deployment.
- Remove
Tags From OnPremises Instances Input Represents the input of a
RemoveTagsFromOnPremisesInstances
operation.- Revision
Info Information about an application revision.
- Revision
Location Information about the location of an application revision.
- Rollback
Info Information about a deployment rollback.
- S3Location
Information about the location of application artifacts stored in Amazon S3.
- Skip
Wait Time ForInstance Termination Input - Stop
Deployment Input Represents the input of a
StopDeployment
operation.- Stop
Deployment Output Represents the output of a
StopDeployment
operation.- Tag
Information about a tag.
- TagFilter
Information about an on-premises instance tag filter.
- TagResource
Input - TagResource
Output - Target
Group Info 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.
- Target
Group Pair Info Information about two target groups and how traffic is routed during an Amazon ECS deployment. An optional test traffic route can be specified.
- Target
Instances Information about the instances to be used in the replacement environment in a blue/green deployment.
- Time
Based Canary 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.
- Time
Based Linear 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.
- Time
Range Information about a time range.
- Traffic
Route Information about a listener. The listener contains the path used to route traffic that is received from the load balancer to a target group.
- Traffic
Routing Config 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.
- Trigger
Config Information about notification triggers for the deployment group.
- Untag
Resource Input - Untag
Resource Output - Update
Application Input Represents the input of an
UpdateApplication
operation.- Update
Deployment Group Input Represents the input of an
UpdateDeploymentGroup
operation.- Update
Deployment Group Output Represents the output of an
UpdateDeploymentGroup
operation.
Enums§
- AddTags
ToOn Premises Instances Error - Errors returned by AddTagsToOnPremisesInstances
- Batch
GetApplication Revisions Error - Errors returned by BatchGetApplicationRevisions
- Batch
GetApplications Error - Errors returned by BatchGetApplications
- Batch
GetDeployment Groups Error - Errors returned by BatchGetDeploymentGroups
- Batch
GetDeployment Instances Error - Errors returned by BatchGetDeploymentInstances
- Batch
GetDeployment Targets Error - Errors returned by BatchGetDeploymentTargets
- Batch
GetDeployments Error - Errors returned by BatchGetDeployments
- Batch
GetOn Premises Instances Error - Errors returned by BatchGetOnPremisesInstances
- Continue
Deployment Error - Errors returned by ContinueDeployment
- Create
Application Error - Errors returned by CreateApplication
- Create
Deployment Config Error - Errors returned by CreateDeploymentConfig
- Create
Deployment Error - Errors returned by CreateDeployment
- Create
Deployment Group Error - Errors returned by CreateDeploymentGroup
- Delete
Application Error - Errors returned by DeleteApplication
- Delete
Deployment Config Error - Errors returned by DeleteDeploymentConfig
- Delete
Deployment Group Error - Errors returned by DeleteDeploymentGroup
- Delete
GitHub Account Token Error - Errors returned by DeleteGitHubAccountToken
- Delete
Resources ByExternal IdError - Errors returned by DeleteResourcesByExternalId
- Deregister
OnPremises Instance Error - Errors returned by DeregisterOnPremisesInstance
- GetApplication
Error - Errors returned by GetApplication
- GetApplication
Revision Error - Errors returned by GetApplicationRevision
- GetDeployment
Config Error - Errors returned by GetDeploymentConfig
- GetDeployment
Error - Errors returned by GetDeployment
- GetDeployment
Group Error - Errors returned by GetDeploymentGroup
- GetDeployment
Instance Error - Errors returned by GetDeploymentInstance
- GetDeployment
Target Error - Errors returned by GetDeploymentTarget
- GetOn
Premises Instance Error - Errors returned by GetOnPremisesInstance
- List
Application Revisions Error - Errors returned by ListApplicationRevisions
- List
Applications Error - Errors returned by ListApplications
- List
Deployment Configs Error - Errors returned by ListDeploymentConfigs
- List
Deployment Groups Error - Errors returned by ListDeploymentGroups
- List
Deployment Instances Error - Errors returned by ListDeploymentInstances
- List
Deployment Targets Error - Errors returned by ListDeploymentTargets
- List
Deployments Error - Errors returned by ListDeployments
- List
GitHub Account Token Names Error - Errors returned by ListGitHubAccountTokenNames
- List
OnPremises Instances Error - Errors returned by ListOnPremisesInstances
- List
Tags ForResource Error - Errors returned by ListTagsForResource
- PutLifecycle
Event Hook Execution Status Error - Errors returned by PutLifecycleEventHookExecutionStatus
- Register
Application Revision Error - Errors returned by RegisterApplicationRevision
- Register
OnPremises Instance Error - Errors returned by RegisterOnPremisesInstance
- Remove
Tags From OnPremises Instances Error - Errors returned by RemoveTagsFromOnPremisesInstances
- Skip
Wait Time ForInstance Termination Error - Errors returned by SkipWaitTimeForInstanceTermination
- Stop
Deployment Error - Errors returned by StopDeployment
- TagResource
Error - Errors returned by TagResource
- Untag
Resource Error - Errors returned by UntagResource
- Update
Application Error - Errors returned by UpdateApplication
- Update
Deployment Group Error - Errors returned by UpdateDeploymentGroup
Traits§
- Code
Deploy - Trait representing the capabilities of the CodeDeploy API. CodeDeploy clients implement this trait.