Я начинаю подбирать aws cli и просто хотел узнать разницу между --query
и --filter
в aws cli? Когда мы должны использовать --query
и --filter
параметры?
По существу --filter
это состояние используется для выбора какие ресурсы вы хотите описать, перечислить и т. д.
С другой стороны --query
это список полей что вы хотите вернуть в ответ. Вы можете выполнить простую фильтрацию с помощью --query
также, но --filter
имеет тенденцию быть более мощным.
Пример из aws ec2 describe-volumes help
:
Для описания томов с тегами и фильтрации вывода
В этом примере команды описываются все тома с ключом тега название и значение, которое начинается с Тест. Вывод фильтруется для отображения только теги и идентификаторы томов.
Команда:
aws ec2 describe-volumes \ --filters Name=tag-key,Values="Name" Name=tag-value,Values="Test*" \ --query 'Volumes[*].{ID:VolumeId,Tag:Tags}'
Вывод:
[ { "Tag": [ { "Value": "Test2", "Key": "Name" } ], "ID": "vol-1234567890abcdef0" }, { "Tag": [ { "Value": "Test1", "Key": "Name" } ], "ID": "vol-049df61146c4d7901" } ]
Как видите, --filter
используется для выбора необходимых записей (то есть с тегом название начиная со строки Тест*. И --query
затем используется только для получения Теги (так как Тег) и VolumeId (так как МНЕ БЫ).
Надеюсь, это поможет :)