【问题标题】:AWS (node.js): How can I retrieve a listener ARN from a Load Balancer using just ALB ARN?AWS (node.js):如何仅使用 ALB ARN 从负载均衡器检索侦听器 ARN?
【发布时间】:2018-07-18 09:52:56
【问题描述】:

我有一个负载均衡器 ARN 列表,它们需要将其证书从即将到期的旧证书换成新证书。我编写了一个脚本,可以成功地为非 ELBv2 LB 执行此操作,但是 v2 类型让我头疼,因为我似乎无法以编程方式将一个(或多个)侦听器与 LB ARN 匹配。我知道一旦我有了那个监听器 ARN,我就可以使用:

elbv2.modifyListener(params,(err, data) => {<snip>});

并期望得到回应,但要达到这一点却让我望而却步。我已经尝试过 elbv2.describeLoadBalancers(),但这似乎需要参数中的侦听器 ARN。

那么,如何为 AWS 提供 LB ARN 并获取其关联的侦听器 ARN?

【问题讨论】:

  • 如果您知道哪些证书即将到期,为什么不迭代所有侦听器并查看他们是否正在使用这些证书?此外,您可以申请由 Amazon 管理的证书。这些会自动为您续订。
  • 如果不是很明显,我对 AWS 还是很陌生 :) 感谢您的想法!我什至没有考虑过这种可能性。

标签: node.js amazon-web-services


【解决方案1】:

您正在寻找describeListeners()。文档说:

描述指定的侦听器或指定应用程序负载均衡器或网络负载均衡器的侦听器。您必须指定任一负载平衡器或一个或多个侦听器。

因此,如果您只使用 LoadBalancerArn 调用它,您应该会获得一个附加到该负载均衡器的侦听器列表。

var AWS = require('aws-sdk');
var elbv2 = new AWS.ELBv2();
var params = {
  LoadBalancerArn: 'arn:...'
};
elbv2.describeListeners(params, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
});

【讨论】:

  • 你导入了什么来使用 describeListeners?
  • @user1633146 只是普通的aws-sdk。查看更新的答案。
  • 可以同时使用 aws-sdk 和 aws-cdk 吗?我正在使用 aws-cdk,但找不到通过 loadbalancerarn 获取侦听器列表的方法。
猜你喜欢
  • 1970-01-01
  • 2020-01-03
  • 2016-09-06
  • 1970-01-01
  • 1970-01-01
  • 2021-12-11
  • 2018-12-15
  • 1970-01-01
  • 2014-12-18
相关资源
最近更新 更多