微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无法将 EC2 实例附加到 AWS CDK 中的经典负载均衡器

如何解决无法将 EC2 实例附加到 AWS CDK 中的经典负载均衡器

我使用 typescript 在 AWS CDK 中创建了一个 EC2 实例和一个 Classic Load Balancer。但我无法将该 EC2 实例直接添加到该负载均衡器。

this.Instance= new ec2.Instance(this,'my-Instance',{
  vpc,instanceType: new InstanceType(instanceType),...});

负载均衡器

this.Elb = new LoadBalancer(this,'my-ELB',{
..
crossZone: true,internetFacing: false,...});

我希望使用以下方法将此 ec2 实例添加到此负载均衡器:

this.Elb.addEc2Instance(this.Instance)

但是没有任何可用的属性

解决方法

您不能使用 LoadBalancer 执行此操作。您必须先将您的实例放入自动缩放组。然后您将 ASG 附加到您的 LB,如 example 所示:

const lb = new elb.LoadBalancer(this,'LB',{
    vpc,internetFacing: true,healthCheck: {
        port: 80
    },});

lb.addTarget(myAutoScalingGroup);
lb.addListener({
    externalPort: 80,});
,

这终于对我有用了。把它放在这里,这样没有人会像我一样浪费时间来解决这个问题。

elbObj.instances 需要实例 ID 的字符串数组。 (read here)

 const elbObj = this.elb.node.defaultChild as CfnLoadBalancer;
    if (elbObj) {
      elbObj.instances = [(this.jenkinsInstance.instanceId).toString()];
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。