Как получить свой IP-адрес из контейнера ECS, работающего в сетевом режиме awsvpc? - PullRequest
0 голосов
/ 17 апреля 2019

Из обычного контейнера ECS, работающего в режиме моста, или из стандартного экземпляра EC2, я обычно запускаю

curl http://169.254.169.254/latest/meta-data/local-ipv4

чтобы восстановить мой IP.

В контейнере ECS, работающем в сетевом режиме awsvpc, я получаю IP-адрес базового экземпляра EC2, который мне не нужен. Я хочу, чтобы адрес ENI был прикреплен к моему контейнеру. Как мне это сделать?

1 Ответ

2 голосов
/ 17 апреля 2019

Новая переменная среды удобства вводится агентом контейнера AWS в каждый контейнер в AWS ECS: ${ECS_CONTAINER_METADATA_URI}

Содержит URL-адрес конечной точки метаданных, так что теперь вы можете сделать

curl ${ECS_CONTAINER_METADATA_URI}

Вывод выглядит примерно так

{  
   "DockerId":"redact",
   "Name":"redact",
   "DockerName":"ecs-redact",
   "Image":"redact",
   "ImageID":"redact",
   "Labels":{  },
   "DesiredStatus":"RUNNING",
   "KnownStatus":"RUNNING",
   "Limits":{  },
   "CreatedAt":"2019-04-16T22:39:57.040286277Z",
   "StartedAt":"2019-04-16T22:39:57.29386087Z",
   "Type":"NORMAL",
   "Networks":[  
      {  
         "NetworkMode":"awsvpc",
         "IPv4Addresses":[  
            "172.30.1.115"
         ]
      }
   ]
}

Под ключом Networks вы найдете IPv4Address

...