我创建了一个 ELB 并将一些实例附加到这个 ELB。因此,当我登录到其中一个附加实例时,我想键入一个命令或运行一个 nodejs 脚本,它可以返回它的 ELB 名称。可能吗?我知道我可以在 AWS 控制台上查找,但我正在寻找一种以编程方式查找它的方法。如果可能的话,我想看看它是如何在命令或 AWS Nodejs SDK 中完成的。
谢谢!
我创建了一个 ELB 并将一些实例附加到这个 ELB。因此,当我登录到其中一个附加实例时,我想键入一个命令或运行一个 nodejs 脚本,它可以返回它的 ELB 名称。可能吗?我知道我可以在 AWS 控制台上查找,但我正在寻找一种以编程方式查找它的方法。如果可能的话,我想看看它是如何在命令或 AWS Nodejs SDK 中完成的。
谢谢!
如果有人来这里寻找纯 bash 解决方案。
使用jq过滤和解析 AWS CLI 的响应:
同样在 aws-codedeploy-samples 中,他们在common_functions.sh中定义了这个函数。我使用 ASG 时尚未对其进行测试,但我想它会起作用
我在 JavaScript 方面不是最优秀的,但我测试了下面的代码并且工作正常。它基本上使用“describeLoadBalancers”API 调用来获取所有 ELB 的列表,然后遍历结果以查找您的实例。如果您的实例注册到特定的负载均衡器,它的名称将输出到控制台:
试试这个脚本:
当然。使用 aws cli:
您要查找的信息位于
LoadBalancerDescriptions.Instances
.一个实例可以附加到任意数量的 ELB。
您可以使用 API 为您的实例搜索所有 ELB。
您可能需要考虑向您的 EC2 添加一个 TAG,其中包含有关它附加到哪个 ELB 的信息,以便您可以直接查询它(EC2)。
我想补充一下保罗的出色回答。此脚本将提示输入 EC2 实例 ID