Назад | Перейти на главную страницу

Можно ли получить идентификатор экземпляра aws ec2 на основе его IP-адреса

У меня есть список IP-адресов, я хочу узнать, работают ли экземпляры, связанные с IP-адресом, или завершены. Я ежедневно запускаю и завершаю множество инстансов, просто хочу удалить их сертификаты из puppetmaster.

Если есть альтернативный метод, я могу достичь своей цели, я могу это сделать.

aws ec2 describe-instances --filter Name=ip-address,Values=IP_1,..IP_N

Должен делать то, что тебе нужно.

используйте имя фильтра private-ip-address чтобы выбрать частный адрес в вашем VPC.

Через что-то вроде

jq -r '.Reservations[].Instances[] | .InstanceId, .PublicIpAddress'

если вам нужен соответствующий InstanceID

Вы можете использовать форматы --query и --output, если хотите использовать их в сценарии bash.

aws ec2 describe-instances --filter Name=private-ip-address,Values=x.x.x.x --query 'Reservations[].Instances[].InstanceId' --output text

Это даст вам текстовый ответ без форматирования json

i-03c1ad0d6abe32323

Альтернативный подход - использовать События CloudWatch для прослушивания завершаемых экземпляров EC2 и иметь слушателя (который может быть Лямбда-функцияили какой-то настраиваемый сервис, прослушивающий SQS) удалите соответствующие сертификаты из Puppet.

Ссылки: