¿Cómo comprobar a través de AWS CLI si la descripción de un grupo de seguridad contiene una cadena específica?

¿Cómo comprobar a través de AWS CLI si la descripción de un grupo de seguridad contiene una cadena específica?

Usando aws cli, me gustaría poder realizar una búsqueda difusa de una parte de una cadena en la 'descripción' de un grupo de seguridad.

Por ejemplo, digamos Grupo de seguridadsd-afafaf00contiene "Hola, Kaipee" en el campo Descripción.

Lo siguiente funciona pero sólo para una coincidencia completa, no parcial.

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

Me gustaría poder mostrar todos los grupos de seguridad que contienen 'kaipee' en la descripción, como:

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

EDITAR: Necesito devolver GroupId, CirdIp y los detalles del campo Descripción que coinciden con los resultados de la cadena consultada.

Respuesta1

¿Te importaría usar jq?

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

Respuesta2

¿Ha intentado utilizar una consulta JMESPath para filtrar el SG que está buscando? Hice algunas pruebas por mi cuenta y no puedo encontrar la manera de comenzar containsa trabajar, pero encuentro que >parece funcionar incluso cuando la cadena de búsqueda no está al comienzo de la descripción.

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

Espero que ayude.

información relacionada