如何刷新 EC2 实例作为 AutoScaling 组的一部分

问题描述 投票:0回答:1

作为 CDK 管道的一部分,EC2 实例通过以下代码作为 AutoScaling 组的一部分启动:

        launch_template = ec2.LaunchTemplate(
            self,
            f"{self.resources_prefix}-launch-template",
            instance_type=ec2.InstanceType(instance_type_identifier=self.ec2_type),
            machine_image=self.linux_ami,
            role=self.ec2_role,
            security_group=self.ec2_sg,
            user_data=ec2.UserData.custom(self.user_data),
        )

        asg = autoscaling.AutoScalingGroup(
            self,
            f"{self.resources_prefix}-auto-scaling",
            vpc=self.ss_vpc,
            vpc_subnets=ec2.SubnetSelection(subnets=[
                self.subnet_a,
                self.subnet_b,
            ]),
            launch_template=launch_template,
            desired_capacity=1,
            min_capacity=1,
            max_capacity=1,
        )

但是,如果我更改 user_data 并再次触发管道,则 EC2 实例不会刷新以反映更改后的 user_data。

我尝试使启动模板 ID 唯一并附加 UUID,但这没有任何区别。

如何确保每次运行管道时都会重新创建此 EC2 实例?

amazon-web-services amazon-ec2 autoscaling launch-template
1个回答
0
投票

您可以尝试使用 AutoScaling Group 生命周期挂钩:

这将使用 Lambda 函数来启动实例刷新。部署堆栈后将触发 Lambda 函数,以确保使用新用户数据重新创建实例。

© www.soinside.com 2019 - 2024. All rights reserved.