АРМ ФОВ: получить IP-адрес контейнера, например, когда задача начала называется


Мне удалось запустить задачу с помощью AWS-SDK для узла 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);

Как только задача создана, я делаю вызов API runTask

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
      });
1 3

1 ответ:

На основе существующих API ECS не существует прямого API для получения IP экземпляра, с которого была запущена задача.

Вам нужно будет использовать describeContainerInstances API ecs, чтобы получить физический идентификатор экземпляра, а затем вызвать API ec2, чтобы получить IP экземпляра, где была запущена задача.