使用 CDK 将启动配置分配给 Auto-Scaling 组
Assigning a launch configuration to an Auto-Scaling Group using CDK
注意:这里的代码是 Go,但很高兴看到任何 CDK 语言的答案。
在 AWS CDK 中,您可以创建启动配置:
// Create the launch configuration
lc := awsautoscaling.NewCfnLaunchConfiguration(
stack,
jsii.String("asg-lc"),
&awsautoscaling.CfnLaunchConfigurationProps{
...
},
)
但是Auto-Scaling Group props中没有明显的参数或函数可以附加它。
我设置了更新策略:
UpdatePolicy: awsautoscaling.UpdatePolicy_RollingUpdate,
我想要做的是能够在 AMI 配置更改时在 CI 系统中调用自动刷新:
aws autoscaling start-instance-refresh --cli-input-json file://asg-refresh.json
问题是启动配置似乎是在首次创建堆栈时自动创建的,并且不会在更新时更改并且具有不正确的值(AMI ID 已过时)。
有没有办法 define/refresh 使用 CDK 更新 AMI ID 的启动配置?这是 UI.
中的一个简单更改
如果您使用 L2 AutoScalingGroup Construct,您可以在更新 AMI 后 运行 cdk deploy
,它应该会为您启动一个新的。此外,使用此构造,还会为您创建启动配置。你真的不需要担心。
IMachineImage image = MachineImage.Lookup(new LookupMachineImageProps()
{
Name = "MY-AMI", // this can be updated on subsequent deploys
});
AutoScalingGroup asg = new AutoScalingGroup(this, $"MY-ASG", new AutoScalingGroupProps()
{
AllowAllOutbound = false,
AssociatePublicIpAddress = false,
AutoScalingGroupName = $"MY-ASG",
Vpc = network.Vpc,
VpcSubnets = new SubnetSelection() { Subnets = network.Vpc.PrivateSubnets },
MinCapacity = 1,
MaxCapacity = 2,
MachineImage = image,
InstanceType = new InstanceType("m5.xlarge"),
SecurityGroup = sg,
UpdatePolicy = UpdatePolicy.RollingUpdate(new RollingUpdateOptions()
{
}),
});
注意:这里的代码是 Go,但很高兴看到任何 CDK 语言的答案。
在 AWS CDK 中,您可以创建启动配置:
// Create the launch configuration
lc := awsautoscaling.NewCfnLaunchConfiguration(
stack,
jsii.String("asg-lc"),
&awsautoscaling.CfnLaunchConfigurationProps{
...
},
)
但是Auto-Scaling Group props中没有明显的参数或函数可以附加它。
我设置了更新策略:
UpdatePolicy: awsautoscaling.UpdatePolicy_RollingUpdate,
我想要做的是能够在 AMI 配置更改时在 CI 系统中调用自动刷新:
aws autoscaling start-instance-refresh --cli-input-json file://asg-refresh.json
问题是启动配置似乎是在首次创建堆栈时自动创建的,并且不会在更新时更改并且具有不正确的值(AMI ID 已过时)。
有没有办法 define/refresh 使用 CDK 更新 AMI ID 的启动配置?这是 UI.
中的一个简单更改如果您使用 L2 AutoScalingGroup Construct,您可以在更新 AMI 后 运行 cdk deploy
,它应该会为您启动一个新的。此外,使用此构造,还会为您创建启动配置。你真的不需要担心。
IMachineImage image = MachineImage.Lookup(new LookupMachineImageProps()
{
Name = "MY-AMI", // this can be updated on subsequent deploys
});
AutoScalingGroup asg = new AutoScalingGroup(this, $"MY-ASG", new AutoScalingGroupProps()
{
AllowAllOutbound = false,
AssociatePublicIpAddress = false,
AutoScalingGroupName = $"MY-ASG",
Vpc = network.Vpc,
VpcSubnets = new SubnetSelection() { Subnets = network.Vpc.PrivateSubnets },
MinCapacity = 1,
MaxCapacity = 2,
MachineImage = image,
InstanceType = new InstanceType("m5.xlarge"),
SecurityGroup = sg,
UpdatePolicy = UpdatePolicy.RollingUpdate(new RollingUpdateOptions()
{
}),
});