Как проверить через aws cli, содержит ли описание группы безопасности определенную строку?

Как проверить через aws cli, содержит ли описание группы безопасности определенную строку?

Используя aws cli, я хотел бы иметь возможность выполнять нечеткий поиск части строки в «описании» группы безопасности.

Например, скажем, Группа Безопасности.сд-афафаф00содержит «Привет, кайпи» в поле «Описание».

Следующее работает, но только для полного совпадения, а не частичного.

aws ec2 describe-security-groups --query "SecurityGroups[?IpPermissions[?contains(IpRanges[].Description, 'Hey there kaipee')]]"

Я хотел бы иметь возможность отображать все группы безопасности, в описании которых содержится «kaipee», например:

aws ec2 describe-security-groups --query "SecurityGroups[?IpPermissions[?contains(IpRanges[].Description, 'kaipee')]]"

EDIT: Мне необходимо вернуть GroupId, CirdIp и данные поля Description, которые соответствуют результатам запрошенной строки.

решение1

Вы не против использования jq?

jq '.[][].IpPermissions[].IpRanges[] | select(.Description) | select(.Description | contains("kaipee"))'

решение2

Вы пробовали использовать запрос JMESPath для фильтрации SG, который вы ищете? Я провел некоторое тестирование самостоятельно и не могу найти способ приступить containsк работе, но я обнаружил, что это, >похоже, работает, даже когда строка поиска не находится в начале описания.

aws ec2 describe-security-groups --query "SecurityGroups[?Description > 'kaipee'].{Description: Description, GroupId: GroupId, IpRanges: IpPermissions[].IpRanges}"

Надеюсь, это поможет.

Связанный контент