CfnUpdatePolicy Struct
Use the UpdatePolicy attribute to specify how AWS CloudFormation handles updates to the AWS::AutoScaling::AutoScalingGroup resource.
AWS CloudFormation invokes one of three update policies depending on the type of change you make or whether a scheduled action is associated with the Auto Scaling group.
Example
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import * as cdk from 'aws-cdk-lib';
const cfnUpdatePolicy: cdk.CfnUpdatePolicy = {
autoScalingInstanceRefresh: {
strategy: 'strategy',
// the properties below are optional
preferences: {
alarmSpecification: {
alarms: ['alarms'],
},
bakeTime: 123,
checkpointDelay: 123,
checkpointPercentages: [123],
instanceWarmup: 123,
maxHealthyPercentage: 123,
minHealthyPercentage: 123,
scaleInProtectedInstances: 'scaleInProtectedInstances',
skipMatching: false,
standbyInstances: 'standbyInstances',
},
},
autoScalingReplacingUpdate: {
willReplace: false,
},
autoScalingRollingUpdate: {
maxBatchSize: 123,
minActiveInstancesPercent: 123,
minInstancesInService: 123,
minSuccessfulInstancesPercent: 123,
pauseTime: 'pauseTime',
suspendProcesses: ['suspendProcesses'],
waitOnResourceSignals: false,
},
autoScalingScheduledAction: {
ignoreUnmodifiedGroupSizeProperties: false,
},
codeDeployLambdaAliasUpdate: {
applicationName: 'applicationName',
deploymentGroupName: 'deploymentGroupName',
// the properties below are optional
afterAllowTrafficHook: 'afterAllowTrafficHook',
beforeAllowTrafficHook: 'beforeAllowTrafficHook',
},
enableVersionUpgrade: false,
useOnlineResharding: false,
};
# The code below shows an example of how to instantiate this type.
# The values are placeholders you should change.
import aws_cdk as cdk
cfn_update_policy = cdk.CfnUpdatePolicy(
auto_scaling_instance_refresh=cdk.CfnAutoScalingInstanceRefresh(
strategy="strategy",
# the properties below are optional
preferences=cdk.CfnAutoScalingInstanceRefreshPreferences(
alarm_specification=cdk.CfnAutoScalingInstanceRefreshAlarmSpecification(
alarms=["alarms"]
),
bake_time=123,
checkpoint_delay=123,
checkpoint_percentages=[123],
instance_warmup=123,
max_healthy_percentage=123,
min_healthy_percentage=123,
scale_in_protected_instances="scaleInProtectedInstances",
skip_matching=False,
standby_instances="standbyInstances"
)
),
auto_scaling_replacing_update=cdk.CfnAutoScalingReplacingUpdate(
will_replace=False
),
auto_scaling_rolling_update=cdk.CfnAutoScalingRollingUpdate(
max_batch_size=123,
min_active_instances_percent=123,
min_instances_in_service=123,
min_successful_instances_percent=123,
pause_time="pauseTime",
suspend_processes=["suspendProcesses"],
wait_on_resource_signals=False
),
auto_scaling_scheduled_action=cdk.CfnAutoScalingScheduledAction(
ignore_unmodified_group_size_properties=False
),
code_deploy_lambda_alias_update=cdk.CfnCodeDeployLambdaAliasUpdate(
application_name="applicationName",
deployment_group_name="deploymentGroupName",
# the properties below are optional
after_allow_traffic_hook="afterAllowTrafficHook",
before_allow_traffic_hook="beforeAllowTrafficHook"
),
enable_version_upgrade=False,
use_online_resharding=False
)
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import software.amazon.awscdk.*;
CfnUpdatePolicy cfnUpdatePolicy = CfnUpdatePolicy.builder()
.autoScalingInstanceRefresh(CfnAutoScalingInstanceRefresh.builder()
.strategy("strategy")
// the properties below are optional
.preferences(CfnAutoScalingInstanceRefreshPreferences.builder()
.alarmSpecification(CfnAutoScalingInstanceRefreshAlarmSpecification.builder()
.alarms(List.of("alarms"))
.build())
.bakeTime(123)
.checkpointDelay(123)
.checkpointPercentages(List.of(123))
.instanceWarmup(123)
.maxHealthyPercentage(123)
.minHealthyPercentage(123)
.scaleInProtectedInstances("scaleInProtectedInstances")
.skipMatching(false)
.standbyInstances("standbyInstances")
.build())
.build())
.autoScalingReplacingUpdate(CfnAutoScalingReplacingUpdate.builder()
.willReplace(false)
.build())
.autoScalingRollingUpdate(CfnAutoScalingRollingUpdate.builder()
.maxBatchSize(123)
.minActiveInstancesPercent(123)
.minInstancesInService(123)
.minSuccessfulInstancesPercent(123)
.pauseTime("pauseTime")
.suspendProcesses(List.of("suspendProcesses"))
.waitOnResourceSignals(false)
.build())
.autoScalingScheduledAction(CfnAutoScalingScheduledAction.builder()
.ignoreUnmodifiedGroupSizeProperties(false)
.build())
.codeDeployLambdaAliasUpdate(CfnCodeDeployLambdaAliasUpdate.builder()
.applicationName("applicationName")
.deploymentGroupName("deploymentGroupName")
// the properties below are optional
.afterAllowTrafficHook("afterAllowTrafficHook")
.beforeAllowTrafficHook("beforeAllowTrafficHook")
.build())
.enableVersionUpgrade(false)
.useOnlineResharding(false)
.build();
// Install: dotnet add package Amazon.CDK.Lib
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
using Amazon.CDK;
var cfnUpdatePolicy = new CfnUpdatePolicy {
AutoScalingInstanceRefresh = new CfnAutoScalingInstanceRefresh {
Strategy = "strategy",
// the properties below are optional
Preferences = new CfnAutoScalingInstanceRefreshPreferences {
AlarmSpecification = new CfnAutoScalingInstanceRefreshAlarmSpecification {
Alarms = new [] { "alarms" }
},
BakeTime = 123,
CheckpointDelay = 123,
CheckpointPercentages = new [] { 123 },
InstanceWarmup = 123,
MaxHealthyPercentage = 123,
MinHealthyPercentage = 123,
ScaleInProtectedInstances = "scaleInProtectedInstances",
SkipMatching = false,
StandbyInstances = "standbyInstances"
}
},
AutoScalingReplacingUpdate = new CfnAutoScalingReplacingUpdate {
WillReplace = false
},
AutoScalingRollingUpdate = new CfnAutoScalingRollingUpdate {
MaxBatchSize = 123,
MinActiveInstancesPercent = 123,
MinInstancesInService = 123,
MinSuccessfulInstancesPercent = 123,
PauseTime = "pauseTime",
SuspendProcesses = new [] { "suspendProcesses" },
WaitOnResourceSignals = false
},
AutoScalingScheduledAction = new CfnAutoScalingScheduledAction {
IgnoreUnmodifiedGroupSizeProperties = false
},
CodeDeployLambdaAliasUpdate = new CfnCodeDeployLambdaAliasUpdate {
ApplicationName = "applicationName",
DeploymentGroupName = "deploymentGroupName",
// the properties below are optional
AfterAllowTrafficHook = "afterAllowTrafficHook",
BeforeAllowTrafficHook = "beforeAllowTrafficHook"
},
EnableVersionUpgrade = false,
UseOnlineResharding = false
};
// Install: go get github.com/aws/aws-cdk-go/awscdk/v2
// The code below shows an example of how to instantiate this type.
// The values are placeholders you should change.
import cdk "github.com/aws/aws-cdk-go/awscdk"
cfnUpdatePolicy := &CfnUpdatePolicy{
AutoScalingInstanceRefresh: &CfnAutoScalingInstanceRefresh{
Strategy: jsii.String("strategy"),
// the properties below are optional
Preferences: &CfnAutoScalingInstanceRefreshPreferences{
AlarmSpecification: &CfnAutoScalingInstanceRefreshAlarmSpecification{
Alarms: []*string{
jsii.String("alarms"),
},
},
BakeTime: jsii.Number(123),
CheckpointDelay: jsii.Number(123),
CheckpointPercentages: []*f64{
jsii.Number(123),
},
InstanceWarmup: jsii.Number(123),
MaxHealthyPercentage: jsii.Number(123),
MinHealthyPercentage: jsii.Number(123),
ScaleInProtectedInstances: jsii.String("scaleInProtectedInstances"),
SkipMatching: jsii.Boolean(false),
StandbyInstances: jsii.String("standbyInstances"),
},
},
AutoScalingReplacingUpdate: &CfnAutoScalingReplacingUpdate{
WillReplace: jsii.Boolean(false),
},
AutoScalingRollingUpdate: &CfnAutoScalingRollingUpdate{
MaxBatchSize: jsii.Number(123),
MinActiveInstancesPercent: jsii.Number(123),
MinInstancesInService: jsii.Number(123),
MinSuccessfulInstancesPercent: jsii.Number(123),
PauseTime: jsii.String("pauseTime"),
SuspendProcesses: []*string{
jsii.String("suspendProcesses"),
},
WaitOnResourceSignals: jsii.Boolean(false),
},
AutoScalingScheduledAction: &CfnAutoScalingScheduledAction{
IgnoreUnmodifiedGroupSizeProperties: jsii.Boolean(false),
},
CodeDeployLambdaAliasUpdate: &CfnCodeDeployLambdaAliasUpdate{
ApplicationName: jsii.String("applicationName"),
DeploymentGroupName: jsii.String("deploymentGroupName"),
// the properties below are optional
AfterAllowTrafficHook: jsii.String("afterAllowTrafficHook"),
BeforeAllowTrafficHook: jsii.String("beforeAllowTrafficHook"),
},
EnableVersionUpgrade: jsii.Boolean(false),
UseOnlineResharding: jsii.Boolean(false),
}
Properties
autoScalingInstanceRefreshoptionalCfnAutoScalingInstanceRefreshauto_scaling_instance_refreshoptionalCfnAutoScalingInstanceRefreshautoScalingInstanceRefreshoptionalCfnAutoScalingInstanceRefreshAutoScalingInstanceRefreshoptionalCfnAutoScalingInstanceRefreshAutoScalingInstanceRefreshoptionalCfnAutoScalingInstanceRefresh#This policy triggers an instance refresh when certain properties of the Auto Scaling group change (such as launch template or mixed instances policy), replacing instances gradually while maintaining availability.
autoScalingReplacingUpdateoptionalCfnAutoScalingReplacingUpdateauto_scaling_replacing_updateoptionalCfnAutoScalingReplacingUpdateautoScalingReplacingUpdateoptionalCfnAutoScalingReplacingUpdateAutoScalingReplacingUpdateoptionalCfnAutoScalingReplacingUpdateAutoScalingReplacingUpdateoptionalCfnAutoScalingReplacingUpdate#During replacement, AWS CloudFormation retains the old group until it finishes creating the new one. If the update fails, AWS CloudFormation can roll back to the old Auto Scaling group and delete the new Auto Scaling group.
autoScalingRollingUpdateoptionalCfnAutoScalingRollingUpdateauto_scaling_rolling_updateoptionalCfnAutoScalingRollingUpdateautoScalingRollingUpdateoptionalCfnAutoScalingRollingUpdateAutoScalingRollingUpdateoptionalCfnAutoScalingRollingUpdateAutoScalingRollingUpdateoptionalCfnAutoScalingRollingUpdate#Rolling updates enable you to specify whether AWS CloudFormation updates instances that are in an Auto Scaling group in batches or all at once.
autoScalingScheduledActionoptionalCfnAutoScalingScheduledActionauto_scaling_scheduled_actionoptionalCfnAutoScalingScheduledActionautoScalingScheduledActionoptionalCfnAutoScalingScheduledActionAutoScalingScheduledActionoptionalCfnAutoScalingScheduledActionAutoScalingScheduledActionoptionalCfnAutoScalingScheduledAction#codeDeployLambdaAliasUpdateoptionalCfnCodeDeployLambdaAliasUpdatecode_deploy_lambda_alias_updateoptionalCfnCodeDeployLambdaAliasUpdatecodeDeployLambdaAliasUpdateoptionalCfnCodeDeployLambdaAliasUpdateCodeDeployLambdaAliasUpdateoptionalCfnCodeDeployLambdaAliasUpdateCodeDeployLambdaAliasUpdateoptionalCfnCodeDeployLambdaAliasUpdate#enableVersionUpgradeoptionalbooleanenable_version_upgradeoptionalboolenableVersionUpgradeoptionalBooleanEnableVersionUpgradeoptionalboolEnableVersionUpgradeoptional*bool#useOnlineReshardingoptionalbooleanuse_online_reshardingoptionalbooluseOnlineReshardingoptionalBooleanUseOnlineReshardingoptionalboolUseOnlineReshardingoptional*bool#