AWS ECS:调用启动任务时获取实例容器的IP public

AWS ECS : get public IP of the instance container when start task is called

我使用 AWS-SDK for node js 成功启动了任务,但此响应不包含启动任务的实例的 IP 地址。 有什么方法可以在同一个回复中检索实例的 IP 吗?

有哪些可能的选择?但是我确实在回复中看到了 containerInstanceArn。

var ecs = new ECS_AWS.ECS({apiVersion: '2014-11-13'});

         var params = {

      family: 'test-code123',
      containerDefinitions: [
          {
              environment: [],
              name: 'simple-app',
              image: 'abc/cbuild:2',
              cpu: 1024,
              memory: 500,
              portMappings: [
                  {
                      containerPort: 8000,
                      hostPort: 8000
                  }
              ],
              command: [
                  'node',
                  '/src1/server.js',
                  '8000'
              ],
              essential: true
          }
      ]

       };

       ecs.registerTaskDefinition(params, function(err, data) {
          if (err) console.log("ECS error" + err + err.stack); // an error occurred
          else       console.log(data);

创建任务后,我创建一个 runTask API 调用

var ecs = new ECS_AWS.ECS({apiVersion: '2014-11-13'});
          var params = {
        taskDefinition: 'arn:aws:ecs:ap-southeast-1:32:task-definition/test-code123:5', /* required */
        count: 1,

              };
      ecs.runTask(params, function(err, data) {
        if (err) console.log(err, err.stack); // an error occurred
        else     console.log(data);           // successful response
      });

基于现有的ECS api,没有直接API获取任务启动实例的IP。

需要使用ecs的describeContainerInstancesAPI获取实例的物理id,然后调用ec2APIs获取任务所在实例的IP已开始。