create-deployment-config
--deployment-config-name <value>
[--minimum-healthy-hosts <value>]
[--traffic-routing-config <value>]
[--compute-platform <value>]
[--zonal-config <value>]
[--cli-input-json | --cli-input-yaml]
[--generate-cli-skeleton <value>]
[--debug]
[--endpoint-url <value>]
[--no-verify-ssl]
[--no-paginate]
[--output <value>]
[--query <value>]
[--profile <value>]
[--region <value>]
[--version <value>]
[--color <value>]
[--no-sign-request]
[--ca-bundle <value>]
[--cli-read-timeout <value>]
[--cli-connect-timeout <value>]
[--cli-binary-format <value>]
[--no-cli-pager]
[--cli-auto-prompt]
[--no-cli-auto-prompt]
--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, 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.
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 theGetDeploymentConfig
, 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, 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 CodeDeploy Instance Health in the CodeDeploy User Guide .
value -> (integer)
The minimum healthy instance value.
Shorthand Syntax:
type=string,value=integer
JSON Syntax:
{
"type": "HOST_COUNT"|"FLEET_PERCENT",
"value": integer
}
--traffic-routing-config
(structure)
The configuration that specifies how the deployment traffic is routed.
type -> (string)
The type of traffic shifting (TimeBasedCanary
orTimeBasedLinear
) 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 aTimeBasedCanary
deployment.canaryInterval -> (integer)
The number of minutes between the first and second traffic shifts of aTimeBasedCanary
deployment.timeBasedLinear -> (structure)
A configuration that shifts traffic from one version of a Lambda function or Amazon 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 Amazon 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 aTimeBasedLinear
deployment.linearInterval -> (integer)
The number of minutes between each incremental traffic shift of aTimeBasedLinear
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
, orECS
).Possible values:
Server
Lambda
ECS
--zonal-config
(structure)
Configure the
ZonalConfig
object if you want CodeDeploy to deploy your application to one Availability Zone at a time, within an Amazon Web Services Region.For more information about the zonal configuration feature, see zonal configuration in the CodeDeploy User Guide .
firstZoneMonitorDurationInSeconds -> (long)
The period of time, in seconds, that CodeDeploy must wait after completing a deployment to the first Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the second Availability Zone. You might set this option if you want to allow extra bake time for the first Availability Zone. If you don’t specify a value for
firstZoneMonitorDurationInSeconds
, then CodeDeploy uses themonitorDurationInSeconds
value for the first Availability Zone.For more information about the zonal configuration feature, see zonal configuration in the CodeDeploy User Guide .
monitorDurationInSeconds -> (long)
The period of time, in seconds, that CodeDeploy must wait after completing a deployment to an Availability Zone. CodeDeploy will wait this amount of time before starting a deployment to the next Availability Zone. Consider adding a monitor duration to give the deployment some time to prove itself (or ‘bake’) in one Availability Zone before it is released in the next zone. If you don’t specify a
monitorDurationInSeconds
, CodeDeploy starts deploying to the next Availability Zone immediately.For more information about the zonal configuration feature, see zonal configuration in the CodeDeploy User Guide .
minimumHealthyHostsPerZone -> (structure)
The number or percentage of instances that must remain available per Availability Zone during a deployment. This option works in conjunction with the
MinimumHealthyHosts
option. For more information, see About the minimum number of healthy hosts per Availability Zone in the CodeDeploy User Guide .If you don’t specify the
minimumHealthyHostsPerZone
option, then CodeDeploy uses a default value of0
percent.For more information about the zonal configuration feature, see zonal configuration in the CodeDeploy User Guide .
type -> (string)
Thetype
associated with theMinimumHealthyHostsPerZone
option.value -> (integer)
Thevalue
associated with theMinimumHealthyHostsPerZone
option.
Shorthand Syntax:
firstZoneMonitorDurationInSeconds=long,monitorDurationInSeconds=long,minimumHealthyHostsPerZone={type=string,value=integer}
JSON Syntax:
{
"firstZoneMonitorDurationInSeconds": long,
"monitorDurationInSeconds": long,
"minimumHealthyHostsPerZone": {
"type": "HOST_COUNT"|"FLEET_PERCENT",
"value": integer
}
}
--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. The generated JSON skeleton is not stable between versions of the AWS CLI and there are no backwards compatibility guarantees in the JSON skeleton generated.
--debug
(boolean)
Turn on debug logging.
--endpoint-url
(string)
Override command’s default URL with the given URL.
--no-verify-ssl
(boolean)
By default, the AWS CLI uses SSL when communicating with AWS services. For each SSL connection, the AWS CLI will verify SSL certificates. This option overrides the default behavior of verifying SSL certificates.
--no-paginate
(boolean)
Disable automatic pagination. If automatic pagination is disabled, the AWS CLI will only make one call, for the first page of results.
--output
(string)
The formatting style for command output.
--query
(string)
A JMESPath query to use in filtering the response data.
--profile
(string)
Use a specific profile from your credential file.
--region
(string)
The region to use. Overrides config/env settings.
--version
(string)
Display the version of this tool.
--color
(string)
Turn on/off color output.
--no-sign-request
(boolean)
Do not sign requests. Credentials will not be loaded if this argument is provided.
--ca-bundle
(string)
The CA certificate bundle to use when verifying SSL certificates. Overrides config/env settings.
--cli-read-timeout
(int)
The maximum socket read time in seconds. If the value is set to 0, the socket read will be blocking and not timeout. The default value is 60 seconds.
--cli-connect-timeout
(int)
The maximum socket connect time in seconds. If the value is set to 0, the socket connect will be blocking and not timeout. The default value is 60 seconds.
--cli-binary-format
(string)
The formatting style to be used for binary blobs. The default format is base64. The base64 format expects binary blobs to be provided as a base64 encoded string. The raw-in-base64-out format preserves compatibility with AWS CLI V1 behavior and binary values must be passed literally. When providing contents from a file that map to a binary blob fileb://
will always be treated as binary and use the file contents directly regardless of the cli-binary-format
setting. When using file://
the file contents will need to properly formatted for the configured cli-binary-format
.
--no-cli-pager
(boolean)
Disable cli pager for output.
--cli-auto-prompt
(boolean)
Automatically prompt for CLI input parameters.
--no-cli-auto-prompt
(boolean)
Disable automatically prompt for CLI input parameters.
To use the following examples, you must have the AWS CLI installed and configured. See the Getting started guide in the AWS CLI User Guide for more information.
Unless otherwise stated, all examples have unix-like quotation rules. These examples will need to be adapted to your terminal’s quoting rules. See Using quotation marks with strings in the AWS CLI User Guide .
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"
}