У меня есть список 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.
Ссылки: