Как отключить пейджер для AWS CLI возвращаемого значения? - PullRequest
1 голос
/ 08 февраля 2020

Я пытаюсь использовать CLI AWS вместе с for l oop в bash для итеративной очистки нескольких очередей сообщений SQS. Сценарий bash работает почти так, как задумано, проблема, с которой я сталкиваюсь, заключается в возвращаемом значении каждый раз, когда CLI AWS отправляет запрос. Когда запрос успешен, он возвращает пустое значение и открывает интерактивный пейджер в командной строке. Затем мне нужно вручную набрать q, чтобы выйти из интерактивного экрана и позволить for l oop перейти к следующей итерации. Это становится очень утомительным и отнимает много времени при попытке очистить большое количество очередей.

Есть ли способ настроить AWS CLI, чтобы отключить этот интерактивный пейджер для всплывающих окон для каждого возвращаемого значения? Или способ передать возвращаемые значения в отдельный файл вместо того, чтобы отображаться?

Я поиграл с настройкой различных типов возвращаемых значений (text, yaml, JSON), но мне не повезло. Также параметр --no-pagination не меняет поведение.

Вот пример скрипта bash, который я пытаюсь запустить:

for x (1 2 3); 
  do aws sqs purge-queue --queue-url https://sqs.<aws-region>.amazonaws.com/<id>/<env>-$x-<queueName>.fifo; 
done

Ответы [ 2 ]

4 голосов
/ 24 февраля 2020

Просто столкнувшись с этой проблемой самостоятельно, я смог отключить поведение, вызвав aws cli как AWS_PAGER="" aws ....

В качестве альтернативы вы можете просто export AWS_PAGER="" наверху вашего (bash) скрипт.

Источник: https://github.com/aws/aws-cli/pull/4702#issue -344978525

1 голос
/ 22 февраля 2020

Вы можете установить переменную окружения PAGER на "cat", чтобы заставить awscli не запускаться less:

PAGER=cat aws sqs list-queues

Я настроил как псевдоним оболочки для сделай мою жизнь проще:

# ~/.zshrc
alias aws="PAGER=cat aws"
...