Usando o aws cli, gostaria de poder fazer uma pesquisa difusa de uma parte de uma string na 'descrição' de um grupo de segurança.
Por exemplo, digamos Grupo de Segurançasd-afafaf00contém "Olá, Kaipee" no campo Descrição.
O seguinte funciona, mas apenas para uma correspondência completa, não parcial
aws ec2 describe-security-groups --query "SecurityGroups[?IpPermissions[?contains(IpRanges[].Description, 'Hey there kaipee')]]"
Gostaria de poder exibir todos os grupos de segurança que contenham 'kaipee' na descrição, como:
aws ec2 describe-security-groups --query "SecurityGroups[?IpPermissions[?contains(IpRanges[].Description, 'kaipee')]]"
EDIT: preciso retornar o GroupId, CirdIp e os detalhes do campo Descrição, que correspondem aos resultados da string consultada.
Responder1
Você se importa em usar jq?
jq '.[][].IpPermissions[].IpRanges[] | select(.Description) | select(.Description | contains("kaipee"))'
Responder2
Você já tentou usar uma consulta JMESPath para filtrar o SG que está procurando. Fiz alguns testes sozinho e não consigo encontrar o caminho para contains
o trabalho, mas acho que >
parece funcionar mesmo quando a string de pesquisa não está no início da descrição.
aws ec2 describe-security-groups --query "SecurityGroups[?Description > 'kaipee'].{Description: Description, GroupId: GroupId, IpRanges: IpPermissions[].IpRanges}"
Espero que ajude.