【问题标题】:AWS CDK How to override default launch configuration in auto scaling group?AWS CDK 如何覆盖 Auto Scaling 组中的默认启动配置?
【发布时间】:2020-03-31 07:55:34
【问题描述】:

您好,我正在研究 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 组编写自己的启动配置。

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

【问题讨论】:

    标签: python amazon-web-services autoscaling aws-cdk


    【解决方案1】:

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

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

    • 角色
    • instance_type
    • key_name
    • machine_image
    • 用户数据
    • associate_public_ip_address
    • block_devices

    您还可以使用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,
    )
    

    【讨论】:

    • 谢谢。如何指定用户数据?我有这样的 userdata = 'Fn::Base64: !Sub | #!/bin/bash -xe echo "========================================= ===========================================" echo ECS_CLUSTER=${MWSServiceCluster} > > /etc/ecs/ecs.config'
    • 我需要创建 aws_cdk.aws_ec2.UserData 构造吗?
    • 是的,我已经使用示例用户数据更新了我的答案。
    • 嗨,在启动配置中,我有 ImageId(当我写云形成时)。这里怎么指定?
    • machine_image = ec2.AmazonLinuxImage()。查看模块文档以获取一些示例:pypi.org/project/aws-cdk.aws-ec2
    猜你喜欢
    • 1970-01-01
    • 2018-06-29
    • 2016-12-08
    • 2013-10-13
    • 2018-03-25
    • 1970-01-01
    • 2023-04-05
    • 2015-05-08
    • 2022-01-19
    相关资源
    最近更新 更多