AWS CLIをbashのfor
ループと共に使用して、複数のSQSメッセージキューを繰り返しパージしようとしています。 bashスクリプトはほぼ意図したとおりに機能しますが、AWS CLIがリクエストを送信するたびに返される値に問題があります。リクエストが成功すると、空の値を返し、コマンドラインでインタラクティブなページャーを開きます。次に、手動でq
と入力してインタラクティブ画面を終了し、for
ループが次の反復に進むようにする必要があります。多数のキューを削除しようとすると、これは非常に退屈で時間がかかります。
このインタラクティブなポケットベルがすべての戻り値に対してポップアップしないようにAWS CLIを構成する方法はありますか?または、表示される代わりに戻り値を別のファイルにパイプする方法は?
私はさまざまな戻り値のタイプ(テキスト、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
AWS_PAGER=""
をエクスポートするか、AWS cli構成ファイルを変更することで、ポケットベルを無効にできます。
export AWS_PAGER=""
### or update your ~/.aws/config with
[default]
cli_pager=
または、デフォルトのポケットベルを有効にして、less
プログラムの出力として
export AWS_PAGER="less"
または対応する構成変更。
参照: https://docs.aws.Amazon.com/cli/latest/userguide/cli-usage-output.html#cli-usage-output-pager
環境変数PAGER
を"cat"
に設定して、awscliが起動しないようにすることができますless
:
PAGER=cat aws sqs list-queues
私は自分の人生を楽にするためにシェルエイリアスとして設定しました:
# ~/.zshrc
alias aws="PAGER=cat aws"