AppConfig / Client / update_deployment_strategy

update_deployment_strategy#

AppConfig.Client.update_deployment_strategy(**kwargs)#

Updates a deployment strategy.

See also: AWS API Documentation

Request Syntax

response = client.update_deployment_strategy(
    DeploymentStrategyId='string',
    Description='string',
    DeploymentDurationInMinutes=123,
    FinalBakeTimeInMinutes=123,
    GrowthFactor=...,
    GrowthType='LINEAR'|'EXPONENTIAL'
)
Parameters:
  • DeploymentStrategyId (string) –

    [REQUIRED]

    The deployment strategy ID.

  • Description (string) – A description of the deployment strategy.

  • DeploymentDurationInMinutes (integer) – Total amount of time for a deployment to last.

  • FinalBakeTimeInMinutes (integer) – The amount of time that AppConfig monitors for alarms before considering the deployment to be complete and no longer eligible for automatic rollback.

  • GrowthFactor (float) – The percentage of targets to receive a deployed configuration during each interval.

  • GrowthType (string) –

    The algorithm used to define how percentage grows over time. AppConfig supports the following growth types:

    Linear: For this type, AppConfig processes the deployment by increments of the growth factor evenly distributed over the deployment time. For example, a linear deployment that uses a growth factor of 20 initially makes the configuration available to 20 percent of the targets. After 1/5th of the deployment time has passed, the system updates the percentage to 40 percent. This continues until 100% of the targets are set to receive the deployed configuration.

    Exponential: For this type, AppConfig processes the deployment exponentially using the following formula: G*(2^N). In this formula, G is the growth factor specified by the user and N is the number of steps until the configuration is deployed to all targets. For example, if you specify a growth factor of 2, then the system rolls out the configuration as follows:

    2*(2^0)

    2*(2^1)

    2*(2^2)

    Expressed numerically, the deployment rolls out as follows: 2% of the targets, 4% of the targets, 8% of the targets, and continues until the configuration has been deployed to all targets.

Return type:

dict

Returns:

Response Syntax

{
    'Id': 'string',
    'Name': 'string',
    'Description': 'string',
    'DeploymentDurationInMinutes': 123,
    'GrowthType': 'LINEAR'|'EXPONENTIAL',
    'GrowthFactor': ...,
    'FinalBakeTimeInMinutes': 123,
    'ReplicateTo': 'NONE'|'SSM_DOCUMENT'
}

Response Structure

  • (dict) –

    • Id (string) –

      The deployment strategy ID.

    • Name (string) –

      The name of the deployment strategy.

    • Description (string) –

      The description of the deployment strategy.

    • DeploymentDurationInMinutes (integer) –

      Total amount of time the deployment lasted.

    • GrowthType (string) –

      The algorithm used to define how percentage grew over time.

    • GrowthFactor (float) –

      The percentage of targets that received a deployed configuration during each interval.

    • FinalBakeTimeInMinutes (integer) –

      The amount of time that AppConfig monitored for alarms before considering the deployment to be complete and no longer eligible for automatic rollback.

    • ReplicateTo (string) –

      Save the deployment strategy to a Systems Manager (SSM) document.

Exceptions

  • AppConfig.Client.exceptions.BadRequestException

  • AppConfig.Client.exceptions.ResourceNotFoundException

  • AppConfig.Client.exceptions.InternalServerException

Examples

The following update-deployment-strategy example updates final bake time to 20 minutes in the specified deployment strategy.

::
response = client.update_deployment_strategy(

DeploymentStrategyId=’1225qzk’, FinalBakeTimeInMinutes=20,

)

print(response)

Expected Output:

{
    'DeploymentDurationInMinutes': 15,
    'FinalBakeTimeInMinutes': 20,
    'GrowthFactor': 25,
    'GrowthType': 'LINEAR',
    'Id': '1225qzk',
    'Name': 'Example-Deployment',
    'ReplicateTo': 'SSM_DOCUMENT',
    'ResponseMetadata': {
        '...': '...',
    },
}