Skip to content

update_deployment_strategy

update_deployment_strategy(
    deployment_strategy_id: DeploymentStrategyId,
    *,
    config_overrides: Optional[AppConfigClientConfig] = None,
    description: Optional[Description] = None,
    deployment_duration_in_minutes: Optional[MinutesBetween0And24Hours] = None,
    final_bake_time_in_minutes: Optional[MinutesBetween0And24Hours] = None,
    growth_factor: Optional[GrowthFactor] = None,
    growth_type: Optional[GrowthType] = None,
) -> DeploymentStrategy

Updates a deployment strategy.

Parameters:

  • deployment_strategy_id (DeploymentStrategyId) –

    The deployment strategy ID.

  • description (Optional[Description], default: None ) –

    A description of the deployment strategy.

  • deployment_duration_in_minutes (Optional[MinutesBetween0And24Hours], default: None ) –

    Total amount of time for a deployment to last.

  • final_bake_time_in_minutes (Optional[MinutesBetween0And24Hours], default: None ) –

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

  • growth_factor (Optional[GrowthFactor], default: None ) –

    The percentage of targets to receive a deployed configuration during each interval.

  • growth_type (Optional[GrowthType], default: None ) –

    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.

Raises:

Examples:

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

>>> client.update_deployment_strategy(deployment_strategy_id='1225qzk', final_bake_time_in_minutes=20)
Source code in docs_src/capo_appconfig/_services/app_config.py
def update_deployment_strategy(
    self,
    deployment_strategy_id: "capo_appconfig.types.deployment_strategy_id.DeploymentStrategyId",
    *,
    config_overrides: Optional[AppConfigClientConfig] = None,
    description: Optional["capo_appconfig.types.description.Description"] = None,
    deployment_duration_in_minutes: Optional[
        "capo_appconfig.types.minutes_between0_and24_hours.MinutesBetween0And24Hours"
    ] = None,
    final_bake_time_in_minutes: Optional[
        "capo_appconfig.types.minutes_between0_and24_hours.MinutesBetween0And24Hours"
    ] = None,
    growth_factor: Optional[
        "capo_appconfig.types.growth_factor.GrowthFactor"
    ] = None,
    growth_type: Optional["capo_appconfig.types.growth_type.GrowthType"] = None,
) -> "capo_appconfig.types.deployment_strategy.DeploymentStrategy":
    """<p>Updates a deployment strategy.</p>

    Args:
        deployment_strategy_id: <p>The deployment strategy ID.</p>
        description: <p>A description of the deployment strategy.</p>
        deployment_duration_in_minutes: <p>Total amount of time for a deployment to last.</p>
        final_bake_time_in_minutes: <p>The amount of time that AppConfig monitors for alarms before considering the deployment to be complete and no longer eligible for automatic rollback.</p>
        growth_factor: <p>The percentage of targets to receive a deployed configuration during each interval.</p>
        growth_type: <p>The algorithm used to define how percentage grows over time. AppConfig supports the following growth types:</p> <p> <b>Linear</b>: 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.</p> <p> <b>Exponential</b>: For this type, AppConfig processes the deployment exponentially using the following formula: <code>G*(2^N)</code>. In this formula, <code>G</code> is the growth factor specified by the user and <code>N</code> 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:</p> <p> <code>2*(2^0)</code> </p> <p> <code>2*(2^1)</code> </p> <p> <code>2*(2^2)</code> </p> <p>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.</p>

    Raises:
        capo_appconfig.errors.bad_request_exception.BadRequestException: <p>The input fails to satisfy the constraints specified by an Amazon Web Services service.</p>
        capo_appconfig.errors.internal_server_exception.InternalServerException: <p>There was an internal failure in the AppConfig service.</p>
        capo_appconfig.errors.resource_not_found_exception.ResourceNotFoundException: <p>The requested resource could not be found.</p>
        capo_appconfig.errors.UnknownServiceError: The service returned an error code this client does not model.

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


        >>> client.update_deployment_strategy(deployment_strategy_id='1225qzk', final_bake_time_in_minutes=20)
    """

    def _handler(
        req: "OperationRequest[capo_appconfig.types.update_deployment_strategy_request.UpdateDeploymentStrategyRequest]",
    ) -> OperationResponse[
        "capo_appconfig.types.deployment_strategy.DeploymentStrategy"
    ]:
        import capo_appconfig._operations.amazon_app_config.update_deployment_strategy

        output, http_response = (
            capo_appconfig._operations.amazon_app_config.update_deployment_strategy.update_deployment_strategy(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("UpdateDeploymentStrategy")
    )
    input_: capo_appconfig.types.update_deployment_strategy_request.UpdateDeploymentStrategyRequest = {
        "deployment_strategy_id": deployment_strategy_id
    }
    if description is not None:
        input_["description"] = description
    if deployment_duration_in_minutes is not None:
        input_["deployment_duration_in_minutes"] = deployment_duration_in_minutes
    if final_bake_time_in_minutes is not None:
        input_["final_bake_time_in_minutes"] = final_bake_time_in_minutes
    if growth_factor is not None:
        input_["growth_factor"] = growth_factor
    if growth_type is not None:
        input_["growth_type"] = growth_type

    response = execute_pipeline(
        OperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    response.response.close()
    return response.output