You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过CDK为Auto-Scaling Group绑定启动配置并更新AMI ID

启动配置绑定到ASG的方法

如果你使用L1层的CfnAutoScalingGroup构造,直接通过LaunchConfigurationName属性传入启动配置的引用即可完成绑定,Go代码示例如下:

// 绑定启动配置到ASG
asg := awsautoscaling.NewCfnAutoScalingGroup(
    stack,
    jsii.String("asg"),
    &awsautoscaling.CfnAutoScalingGroupProps{
        MinSize:             jsii.String("1"),
        MaxSize:             jsii.String("4"),
        DesiredCapacity:     jsii.String("2"),
        // 核心绑定逻辑,直接传入启动配置的Ref属性
        LaunchConfigurationName: lc.Ref(),
        UpdatePolicy:        awsautoscaling.UpdatePolicy_RollingUpdate,
        // 其他ASG属性省略
    },
)

如果你使用L2层的AutoScalingGroup高阶构造,也可以通过LaunchConfiguration参数直接传入启动配置实例完成绑定。

解决启动配置AMI不更新的问题

AWS原生的Launch Configuration是不可变资源,创建后无法修改任何属性,所以更新AMI必须创建新的启动配置,再关联到ASG。要让CDK自动完成这个流程,推荐以下方案:

  • 把AMI ID的唯一标识加入启动配置的逻辑ID,确保每次AMI变更时,CDK会识别为新资源,自动创建新的启动配置、更新ASG关联、触发滚动更新。
  • 推荐使用CDK内置的AMI查询能力动态拉取最新AMI,无需硬编码AMI ID,示例如下:
import (
    "fmt"
    "github.com/aws/aws-cdk-go/awscdk/v2/awsec2"
    "github.com/aws/aws-cdk-go/awscdk/v2/awsautoscaling"
    "github.com/aws/jsii-runtime-go"
)

// 动态查询最新的Amazon Linux 2 AMI,每次栈合成时都会拉取当前最新的可用ID
ami := awsec2.MachineImage_Lookup(&awsec2.LookupMachineImageProps{
    Owners: jsii.Strings("amazon"),
    Filters: map[string]*[]*string{
        "name":  jsii.Strings("amzn2-ami-hvm-*-x86_64-gp2"),
        "state": jsii.Strings("available"),
    },
    MostRecent: jsii.Bool(true),
})

// 将AMI ID后缀加入启动配置逻辑ID,确保AMI变更时自动生成新资源
lcLogicalId := fmt.Sprintf("asg-lc-%s", *ami.ImageId())
lc := awsautoscaling.NewCfnLaunchConfiguration(
    stack,
    jsii.String(lcLogicalId),
    &awsautoscaling.CfnLaunchConfigurationProps{
        ImageId:      ami.ImageId(),
        InstanceType: jsii.String("t3.micro"),
        // 其他启动配置属性(密钥对、安全组等)省略
    },
)

实例刷新配置说明

你已经配置了RollingUpdate更新策略,CDK部署时只要检测到启动配置变更,会自动触发ASG的滚动实例替换,无需额外调用CLI。如果需要在CI中手动触发实例刷新,只要ASG已经关联了新的启动配置,你使用的aws autoscaling start-instance-refresh命令可以正常生效,新启动的实例会使用最新的AMI。

内容的提问来源于stack exchange,提问作者t j

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 13:54:08