В чем разница между --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 (как идентификатор).

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

Другие вопросы по тегам