Amazon-Ec2

從附加的實例中獲取 AWS ELB 名稱

  • January 30, 2019

我創建了一個 ELB 並將一些實例附加到這個 ELB。因此,當我登錄到其中一個附加實例時,我想鍵入一個命令或執行一個 nodejs 腳本,它可以返回它的 ELB 名稱。是否可以?我知道我可以在 AWS 控制台上查找,但我正在尋找一種以程式方式查找它的方法。如果可能的話,我想看看它是如何在命令或 AWS Nodejs SDK 中完成的。

謝謝!

我在 JavaScript 方面不是最優秀的,但我測試了下面的程式碼並且工作正常。它基本上使用“describeLoadBalancers”API 呼叫來獲取所有 ELB 的列表,然後遍歷結果以查找您的實例。如果您的實例註冊到特定的負載均衡器,它的名稱將輸出到控制台:

// Require AWS SDK for Javascript
var AWS = require('aws-sdk');

// Set API Keys and Region
AWS.config.update({
   "accessKeyId": "<your access key>", 
   "secretAccessKey": "<your secret key>",
   "region": "us-west-1" // specify your region
});

// Get All Load Balancers
function GetLoadBalancers(fn)
{
   var elb = new AWS.ELB();
   elb.describeLoadBalancers(null,function(err, data) {
       fn(data)
   });
}

// Loop through response to check if ELB contains myInstanceId
var myInstanceId = "<your instance id>";
GetLoadBalancers(function(elbs){
   elbs.LoadBalancerDescriptions.forEach(function(elb){
     if(elb.Instances[0] != undefined){
       if (elb.Instances[0].InstanceId == myInstanceId){
           console.log(elb.LoadBalancerName);
       }
     }
   });
});

引用自:https://serverfault.com/questions/586315