Amazon web services 获取ECS容器的IP地址

Amazon web services 获取ECS容器的IP地址,amazon-web-services,aws-sdk,amazon-ecs,Amazon Web Services,Aws Sdk,Amazon Ecs,我在AWS Lambda的NodeJS上工作,试图获取ECS集群中特定容器的IP/主机名。ELB对我们来说是不可能的,否则我就用它 这就是我想到的: const AWS=require('AWS-sdk'); const ecs=新的AWS.ecs({region:'us-east-1'}); const ec2=new AWS.ec2({地区:'us-east-1'}); const CLUSTER='MyClusterNameHere'; 函数getIP(){ 返回ecs.listConta

我在AWS Lambda的NodeJS上工作,试图获取ECS集群中特定容器的IP/主机名。ELB对我们来说是不可能的,否则我就用它

这就是我想到的:

const AWS=require('AWS-sdk');
const ecs=新的AWS.ecs({region:'us-east-1'});
const ec2=new AWS.ec2({地区:'us-east-1'});
const CLUSTER='MyClusterNameHere';
函数getIP(){
返回ecs.listContainerInstances({cluster:cluster}).promise()
.then(data=>ecs.descripeBContainerInstances({containerInstances:data.containerInstanceArns,cluster:cluster}).promise())
.then(data=>ec2.DescripteBinstances({InstanceId:[data.containerInstances[0].ec2InstanceID]}).promise()
.then(data=>data.Reservations[0]。实例[0]。PrivateDnsName);
}
getIP().then(数据=>console.log(数据))
这似乎是为了得到我想要的东西而进行的大量API调用和对复杂对象的大量挖掘。我想用一种更快、更不激烈的方式来实现这一点


注意:我可以在这里使用
实例[0]
,尽管我不应该这样做,因为我知道只有一个容器,而且只有一个实例,但IP可能会偶尔更改我无法找到更快的方法,所以我只使用了我所拥有的。

我认为这个问题与Lambda无关。Lambda没有为此提供任何其他工具,也不应该阻止任何普通的AWS SDK解决方案。不过,识别上下文没有什么坏处。你是对的。我会解开它的。我之所以提到它,是因为它可能是我打电话的出发点。除非您在ECS主机上使用特定的标签,否则您的方式是首选方式。