Как запросить группы безопасности для экземпляров EC2? - PullRequest
1 голос
/ 18 июня 2019

Я пытаюсь составить полный список экземпляров EC2 в моей учетной записи AWS через aws-cli. Я успешно запрашиваю все, кроме связанных групп безопасности для каждого экземпляра. Когда я пытаюсь вытащить имя группы безопасности, оно появляется как None. Ниже приведена команда, которую я выполнил. Я также пробовал «Группы».

aws ec2 describe-instances --region=us-west-2 --query 'Reservations[*].Instances[*].[Tags[?Key==`Name`].Value|[0],InstanceId,Placement.AvailabilityZone,State.Name,KeyName,SecurityGroups.GroupName]' --output table

1 Ответ

1 голос
/ 18 июня 2019

Это потому, что каждому экземпляру может быть назначено несколько групп безопасности, поэтому SecurityGroups - это массив. вы можете получить доступ к первому элементу в массиве, если вместо этого:

SecurityGroups.GroupName

ты сделаешь:

SecurityGroups[0].GroupName

но это покажет вам только первую группу безопасности в списке. Если вы хотите увидеть весь список, вам придется изменить свой запрос на что-то вроде:

aws ec2 describe-instances --region "us-west-2" --query 'Reservations[*].Instances[*].[InstanceId,SecurityGroups[].GroupName |[*]]' --output text
...