aws sdk 没有列出负载均衡器

aws sdk not listing load balancers

我正在尝试列出我在 us-east-1(美国东部(弗吉尼亚北部))的负载均衡器。我可以看到 Web 控制台前面有两个负载平衡器(在 EC2 > 负载平衡 > 负载平衡器下)但是如果我 运行:

AWS = require('aws-sdk');
var elb = new AWS.ELBv2({
  accessKeyId: '<accessKeyId>',
  secretAccessKey: '<secretAccessKey>',
  region: 'us-east-1'
});

elb.describeLoadBalancers({}, (e, r) => console.log('error', e, 'result', r))

这个日志:

error null result { ResponseMetadata: { RequestId: '<some-long-id>' }, LoadBalancers: [] }

Javascript SDK 中的 ELBv2 class 不能替代 ELB class。 ELBv2 用于第二代 ELB -- Application Load Balancer,而 ELB 用于第一代 ELB,现在称为 Classic Load Balancer。

两代 ELB 在特性和功能上确实有一些重叠,但两代都提供了另​​一代所没有的功能 -- 经典 LB 可以 SSL/TLS 卸载非 HTTP 服务,应用程序 LB不能;应用程序 LB 可以根据 HTTP 请求路径选择后端并说 HTTP/2 并路由到单个实例上的多个端口,而经典 LB 不能。

这两代的配置选项非常不同,大概这就是为什么有一个单独的界面来询问和操纵两种不同类型的平衡器的原因。