web-dev-qa-db-ja.com

AWS CLIの戻り値のポケットベルをオフにする方法は?

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
4
Colin Armstrong

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

1
Umesh Poswal

環境変数PAGER"cat"に設定して、awscliが起動しないようにすることができますless

PAGER=cat aws sqs list-queues

私は自分の人生を楽にするためにシェルエイリアスとして設定しました:

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