【问题标题】:How to disable life-cycle hooks when creating auto scaling group?创建自动伸缩组时如何禁用生命周期钩子?
【发布时间】:2019-12-10 09:38:51
【问题描述】:

您好,我正在使用 aws cdk 在 aws 中创建资源。当我创建 aws Auto Scaling 组时,我看到创建了许多其他资源。

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"))

这也在创建下面的资源,例如

autoscallingDrainECSHookFunctionServiceRole219A7F8B,
autoscallingDrainECSHookFunctionServiceRoleDefaultPolicyE2FB5F79,
autoscallingDrainECSHookFunctionBE2A2160,
autoscallingDrainECSHookFunctionAllowInvokeLocationCdkStackcdkstackautoscallingLifecycleHookDrainHookTopicA75797CC21F927C0,
autoscallingDrainECSHookFunctionTopic3103D34F,
autoscallingLifecycleHookDrainHookRoleA95F8BD2,
autoscallingLifecycleHookDrainHookRoleDefaultPolicyBB70BF84,
autoscallingLifecycleHookDrainHookTopicA04CE464,
autoscallingLifecycleHookDrainHook9489AED1

为什么要创建这些资源?如果我不想要这些资源,我该如何限制它?有人可以帮助我吗?谢谢

【问题讨论】:

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


    【解决方案1】:

    aws-cdk 中的“L2”结构意味着“包括电池”。这通常意味着它将生成诸如角色(具有所需的最低权限)和其他常用且被认为是最佳实践的资源。

    当你像上面那样创建一个自动缩放组时,我得到的资源是:

    AWS::EC2::SecurityGroup - 实例作为 asg 的一部分创建时获得的安全组

    AWS::IAM::Role - 实例作为 asg 的一部分创建时获得的 iam 角色

    AWS::IAM::InstanceProfile - 实例的实例配置文件,这是角色在启动时与实例相关联的方式

    AWS::AutoScaling::LaunchConfiguration - 在此处附加实例、配置文件和安全组的启动配置

    AWS::AutoScaling::AutoScalingGroup - ASG 本身,具有上述 LaunchConfiguration 作为属性

    生命周期钩子仅在 asg 创建后添加。如果您将 ASG 构造传递给另一个依赖生命周期钩子的 L2 构造,它可能会自动创建它们。

    “包含电池”的方法是对所有这些进行抽象,但是,如果您想手动创建所有这些资源并自己调整它们,则存在 L1 构造。您可以使用CfnAutoScalingGroup class

    【讨论】:

      猜你喜欢
      • 2019-12-02
      • 2020-01-15
      • 2017-11-22
      • 1970-01-01
      • 1970-01-01
      • 2021-01-18
      • 2020-07-10
      • 1970-01-01
      相关资源
      最近更新 更多