AWS CodeDeploy Deployment Group
This page shows how to write Terraform and CloudFormation for CodeDeploy Deployment Group and write them securely.
aws_codedeploy_deployment_group (Terraform)
The Deployment Group in CodeDeploy can be configured in Terraform with the resource name aws_codedeploy_deployment_group
. The following sections describe 4 examples of how to use the resource and its parameters.
Example Usage from GitHub
resource "aws_codedeploy_deployment_group" "dev" {
deployment_group_name = "dev"
app_name = var.app_name
service_role_arn = var.service_role
deployment_config_name = "CodeDeployDefault.AllAtOnce"
resource "aws_codedeploy_deployment_group" "aip-smartall-api-deploy-group" {
deployment_group_name = "prd-aip-deploy-group"
deployment_config_name = "CodeDeployDefault.AllAtOnce"
app_name = aws_codedeploy_app.aip-smartall-api.name
service_role_arn = data.aws_iam_role.prd-com-codedeploy-role.arn
autoscaling_groups = [ "prd-aip-smartall-api-ag"]
resource "aws_codedeploy_deployment_group" "demo-dev-deploy-group" {
app_name = aws_codedeploy_app.demo-deploy.name
deployment_group_name = "demo-dev-deploy-group"
service_role_arn = aws_iam_role.code-deploy.arn
ec2_tag_set {
resource "aws_codedeploy_deployment_group" "codedeploy_group_WEB" {
app_name = aws_codedeploy_app.codedeploy_app_WEB.name
deployment_group_name = "70491-codedeploy-group_WEB"
deployment_config_name = "CodeDeployDefault.AllAtOnce"
service_role_arn = aws_iam_role.codedeploy_role.arn
Parameters
-
app_name
required - string -
arn
optional computed - string -
autoscaling_groups
optional - set of string -
compute_platform
optional computed - string -
deployment_config_name
optional - string -
deployment_group_id
optional computed - string -
deployment_group_name
required - string -
id
optional computed - string -
service_role_arn
required - string -
tags
optional - map from string to string -
alarm_configuration
list block-
alarms
optional - set of string -
enabled
optional - bool -
ignore_poll_alarm_failure
optional - bool
-
-
auto_rollback_configuration
list block -
blue_green_deployment_config
list block-
deployment_ready_option
list block-
action_on_timeout
optional - string -
wait_time_in_minutes
optional - number
-
-
green_fleet_provisioning_option
list block-
action
optional - string
-
-
terminate_blue_instances_on_deployment_success
list block-
action
optional - string -
termination_wait_time_in_minutes
optional - number
-
-
-
deployment_style
list block-
deployment_option
optional - string -
deployment_type
optional - string
-
-
ec2_tag_filter
set block -
ec2_tag_set
set block-
ec2_tag_filter
set block
-
-
ecs_service
list block-
cluster_name
required - string -
service_name
required - string
-
-
load_balancer_info
list block-
elb_info
set block-
name
optional - string
-
-
target_group_info
set block-
name
optional - string
-
-
target_group_pair_info
list block-
prod_traffic_route
list block-
listener_arns
required - set of string
-
-
target_group
list block-
name
required - string
-
-
test_traffic_route
list block-
listener_arns
required - set of string
-
-
-
-
on_premises_instance_tag_filter
set block -
trigger_configuration
set block-
trigger_events
required - set of string -
trigger_name
required - string -
trigger_target_arn
required - string
-
Explanation in Terraform Registry
Provides a CodeDeploy Deployment Group for a CodeDeploy Application
NOTE on blue/green deployments: When using
green_fleet_provisioning_option
with theCOPY_AUTO_SCALING_GROUP
action, CodeDeploy will create a new ASG with a different name. This ASG is not managed by terraform and will conflict with existing configuration and state. You may want to use a different approach to managing deployments that involve multiple ASG, such asDISCOVER_EXISTING
with separate blue and green ASG.
AWS::CodeDeploy::DeploymentGroup (CloudFormation)
The DeploymentGroup in CodeDeploy can be configured in CloudFormation with the resource name AWS::CodeDeploy::DeploymentGroup
. The following sections describe how to use the resource and its parameters.
Example Usage from GitHub
An example could not be found in GitHub.
Parameters
-
AlarmConfiguration
optional - AlarmConfiguration -
ApplicationName
required - String -
AutoRollbackConfiguration
optional - AutoRollbackConfiguration -
AutoScalingGroups
optional - List -
BlueGreenDeploymentConfiguration
optional - BlueGreenDeploymentConfiguration -
Deployment
optional - Deployment -
DeploymentConfigName
optional - String -
DeploymentGroupName
optional - String -
DeploymentStyle
optional - DeploymentStyle -
ECSServices
optional - List of ECSService -
Ec2TagFilters
optional - List of EC2TagFilter -
Ec2TagSet
optional - EC2TagSet -
LoadBalancerInfo
optional - LoadBalancerInfo -
OnPremisesInstanceTagFilters
optional - List of TagFilter -
OnPremisesTagSet
optional - OnPremisesTagSet -
ServiceRoleArn
required - String -
TriggerConfigurations
optional - List of TriggerConfig
Explanation in CloudFormation Registry
The
AWS::CodeDeploy::DeploymentGroup
resource creates an AWS CodeDeploy deployment group that specifies which instances your application revisions are deployed to, along with other deployment options. For more information, see CreateDeploymentGroup in the CodeDeploy API Reference. Note Amazon ECS blue/green deployments through CodeDeploy do not use theAWS::CodeDeploy::DeploymentGroup
resource. To perform Amazon ECS blue/green deployments, use theAWS::CodeDeploy::BlueGreen
hook. See Perform Amazon ECS blue/green deployments through CodeDeploy using AWS CloudFormation for more information.
Frequently asked questions
What is AWS CodeDeploy Deployment Group?
AWS CodeDeploy Deployment Group is a resource for CodeDeploy of Amazon Web Service. Settings can be wrote in Terraform and CloudFormation.
Where can I find the example code for the AWS CodeDeploy Deployment Group?
For Terraform, the ChicagoWorldcon/infrastructure, pe-woongjin/wjtb-code-deploy-tf and kujalk/CI-CD-pipeline-AWS source code examples are useful. See the Terraform Example section for further details.