[ aws . deploy ]

create-deployment-config

Description

Creates a deployment configuration.

See also: AWS API Documentation

See ‘aws help’ for descriptions of global parameters.

Synopsis

  create-deployment-config
--deployment-config-name <value>
[--minimum-healthy-hosts <value>]
[--traffic-routing-config <value>]
[--compute-platform <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
[--cli-auto-prompt <value>]

Options

--deployment-config-name (string)

The name of the deployment configuration to create.

--minimum-healthy-hosts (structure)

The minimum number of healthy instances that should be available at any time during the deployment. There are two parameters expected in the input: type and value.

The type parameter takes either of the following values:

  • HOST_COUNT: The value parameter represents the minimum number of healthy instances as an absolute value.

  • FLEET_PERCENT: The value parameter represents the minimum number of healthy instances as a percentage of the total number of instances in the deployment. If you specify FLEET_PERCENT, at the start of the deployment, AWS CodeDeploy converts the percentage to the equivalent number of instances and rounds up fractional instances.

The value parameter takes an integer.

For example, to set a minimum of 95% healthy instance, specify a type of FLEET_PERCENT and a value of 95.

value -> (integer)

The minimum healthy instance value.

type -> (string)

The minimum healthy instance type:

  • HOST_COUNT : The minimum number of healthy instances as an absolute value.

  • FLEET_PERCENT : The minimum number of healthy instances as a percentage of the total number of instances in the deployment.

In an example of nine instances, if a HOST_COUNT of six is specified, deploy to up to three instances at a time. The deployment is successful if six or more instances are deployed to successfully. Otherwise, the deployment fails. If a FLEET_PERCENT of 40 is specified, deploy to up to five instances at a time. The deployment is successful if four or more instances are deployed to successfully. Otherwise, the deployment fails.

Note

In a call to the GetDeploymentConfig , CodeDeployDefault.OneAtATime returns a minimum healthy instance type of MOST_CONCURRENCY and a value of 1. This means a deployment to only one instance at a time. (You cannot set the type to MOST_CONCURRENCY, only to HOST_COUNT or FLEET_PERCENT.) In addition, with CodeDeployDefault.OneAtATime, AWS CodeDeploy attempts to ensure that all instances but one are kept in a healthy state during the deployment. Although this allows one instance at a time to be taken offline for a new deployment, it also means that if the deployment to the last instance fails, the overall deployment is still successful.

For more information, see AWS CodeDeploy Instance Health in the AWS CodeDeploy User Guide .

Shorthand Syntax:

value=integer,type=string

JSON Syntax:

{
  "value": integer,
  "type": "HOST_COUNT"|"FLEET_PERCENT"
}

--traffic-routing-config (structure)

The configuration that specifies how the deployment traffic is routed.

type -> (string)

The type of traffic shifting (TimeBasedCanary or TimeBasedLinear ) used by a deployment configuration.

timeBasedCanary -> (structure)

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.

canaryPercentage -> (integer)

The percentage of traffic to shift in the first increment of a TimeBasedCanary deployment.

canaryInterval -> (integer)

The number of minutes between the first and second traffic shifts of a TimeBasedCanary deployment.

timeBasedLinear -> (structure)

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.

linearPercentage -> (integer)

The percentage of traffic that is shifted at the start of each increment of a TimeBasedLinear deployment.

linearInterval -> (integer)

The number of minutes between each incremental traffic shift of a TimeBasedLinear deployment.

Shorthand Syntax:

type=string,timeBasedCanary={canaryPercentage=integer,canaryInterval=integer},timeBasedLinear={linearPercentage=integer,linearInterval=integer}

JSON Syntax:

{
  "type": "TimeBasedCanary"|"TimeBasedLinear"|"AllAtOnce",
  "timeBasedCanary": {
    "canaryPercentage": integer,
    "canaryInterval": integer
  },
  "timeBasedLinear": {
    "linearPercentage": integer,
    "linearInterval": integer
  }
}

--compute-platform (string)

The destination platform type for the deployment (Lambda , Server , or ECS ).

Possible values:

  • Server

  • Lambda

  • ECS

--cli-input-json | --cli-input-yaml (string) Reads arguments from the JSON string provided. The JSON string follows the format provided by --generate-cli-skeleton. If other arguments are provided on the command line, those values will override the JSON-provided values. It is not possible to pass arbitrary binary values using a JSON-provided value as the string will be taken literally. This may not be specified along with --cli-input-yaml.

--generate-cli-skeleton (string) Prints a JSON skeleton to standard output without sending an API request. If provided with no value or the value input, prints a sample input JSON that can be used as an argument for --cli-input-json. Similarly, if provided yaml-input it will print a sample input YAML that can be used with --cli-input-yaml. If provided with the value output, it validates the command inputs and returns a sample output JSON for that command.

--cli-auto-prompt (boolean) Automatically prompt for CLI input parameters.

See ‘aws help’ for descriptions of global parameters.

Examples

To create a custom deployment configuration

The following create-deployment-config example creates a custom deployment configuration and associates it with the user’s AWS account.

aws deploy create-deployment-config \
    --deployment-config-name ThreeQuartersHealthy \
    --minimum-healthy-hosts type=FLEET_PERCENT,value=75

Output:

{
    "deploymentConfigId": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE"
}

Output

deploymentConfigId -> (string)

A unique deployment configuration ID.