Назад | Перейти на главную страницу

В чем разница между --query и --filter в aws cli? Что предлагается использовать?

Я начинаю подбирать 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 (так как МНЕ БЫ).

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