首页 > 解决方案 > AWS CDK 如何覆盖 Auto Scaling 组中的默认启动配置?

问题描述

嗨,我正在研究 AWS CDK。我正在创建 ECS。我创建了如下自动缩放组。

autoScallingGroup=asg.AutoScalingGroup(self, id = "auto scalling", vpc= vpc, machine_image=ecs.EcsOptimizedImage.amazon_linux(), desired_capacity=1, key_name="mws-location", max_capacity=1, min_capacity=1, instance_type=ec2.InstanceType("t2.xlarge"))

这也将生成默认启动配置。我想为这个 Auto Scaling 组编写自己的启动配置。

有人可以帮我解决这个问题吗?任何帮助,将不胜感激。谢谢

标签: pythonamazon-web-servicesautoscalingaws-cdk

解决方案


在 CDK 中没有创建启动配置的特定结构。但是,您可以通过将参数传递给 aws_autoscaling.AutoScalingGroup 构造函数来构造一个。

您需要指定 AutoScalingGroup 类的以下属性:

  • 角色
  • 实例类型
  • 键名
  • machine_image
  • 用户数据
  • associate_public_ip_address
  • 块设备

您还可以使用该add_security_group()功能添加安全组。

例如,如果您想将用户数据添加到 LaunchConfig:

userdata = ec2.UserData.for_linux(shebang="#!/bin/bash -xe")
userdata.add_commands(
         "echo '======================================================='",
         "echo \"ECS_CLUSTER=${MWSServiceCluster}\" >> /etc/ecs/ecs.config"
)

asg = autoscaling.AutoScalingGroup(
        self,
        "asg-identifier",
        ...
        user_data=userdata,
)

推荐阅读