В чем разница между --query и --filter в aws cli? Что предлагается использовать?
Я начинаю поднимать AWS Cli, и я просто хотел знать разницу между --query
а также --filter
в авс кли? Когда мы должны использовать --query
а также --filter
опции?
1 ответ
По существу --filter
это условие, используемое для выбора ресурсов, которые вы хотите описать, перечислить и т. д.
С другой стороны --query
список полей, которые вы хотите вернуть в ответе. Вы можете сделать несколько простых фильтров с --query
как хорошо, но --filter
имеет тенденцию быть более сильным.
Пример из aws ec2 describe-volumes help
:
Для описания помеченных томов и фильтрации выходных данных
В этом примере команда описывает все тома с тегом Key Name и значением, начинающимся с Test. Вывод фильтруется для отображения только тегов и идентификаторов томов.
Команда:
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
используется для выбора необходимых записей (т. е. с тегом Name, начинающимся со строки Test *. И --query
затем используется только для получения тегов (как тег) и VolumeId (как идентификатор).
Надеюсь, это поможет:)