如何关闭 AWS CLI 返回值的寻呼机?

Col*_*ong 37 bash amazon-sqs amazon-web-services aws-cli

我正在尝试利用 AWS CLI 和forbash 中的循环来迭代清除多个 SQS 消息队列。bash 脚本几乎按预期工作,我遇到的问题是每次 AWS CLI 发送请求时的返回值。当请求成功时,它返回一个空值并在命令行中打开一个交互式寻呼机。然后我必须手动输入q以退出交互式屏幕并允许for循环继续下一次迭代。当尝试清除大量队列时,这变得非常乏味和耗时。

有没有办法配置 AWS CLI 以禁用此交互式寻呼机为每个返回值弹出?或者将返回值通过管道传输到单独的文件而不是显示的方法?

我玩过配置不同的返回值类型(文本、yaml、JSON)但没有任何运气。此外,该--no-pagination参数不会改变行为。

这是我尝试运行的 bash 脚本示例:

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

cue*_*dee 60

我自己刚刚遇到这个问题,我能够通过调用 aws cli as 来禁用该行为AWS_PAGER="" aws ...

或者,您可以简单地export AWS_PAGER=""位于(bash)脚本的顶部。

来源:https : //github.com/aws/aws-cli/pull/4702#issue-344978525

  • 正如该消息来源提到的,如果您不喜欢 env var 解决方案,您还可以将 `cli_pager = cat` 添加到您的 `~/.aws/config` (9认同)
  • 以下是有关此内容的文档以及许多其他有用的配置选项:https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-pagination.html (5认同)
  • 如果您不想通过“cat”获得额外的提要,您可以在 AWS 配置中设置“cli_pager =” (4认同)

nak*_*ume 19

您可以通过导出AWS_PAGER=""或修改您的 AWS cli 配置文件来禁用寻呼机。

export AWS_PAGER="" 

### or update your ~/.aws/config with 

[default]
cli_pager=
Run Code Online (Sandbox Code Playgroud)

或者,您可以启用默认分页器以将less程序输出为

export AWS_PAGER="less" 
Run Code Online (Sandbox Code Playgroud)

或相应的配置更改。

参考:https : //docs.aws.amazon.com/cli/latest/userguide/cli-usage-output.html#cli-usage-output-pager

  • 要更新 aws 配置文件,可以使用以下命令:`aws configure set cli_pager ""`。附加“--profile profile-name”以专门针对配置文件禁用寻呼机。 (2认同)

Dan*_*rov 11

您还可以--no-cli-pager在 AWS CLI 版本 2 中使用。

请参阅此处的“客户端寻呼机”部分https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-pagination.html


DSi*_*mon 9

您可以将环境变量设置PAGER"cat"来强制 awscli 不启动less

PAGER=cat aws sqs list-queues

我设置为 shell 别名以使我的生活更轻松:

# ~/.zshrc
alias aws="PAGER=cat aws"
Run Code Online (Sandbox Code Playgroud)


ste*_*7vt 5

我正在通过 docker 使用 aws cli v2,并通过--env AWS_PAGER=""docker run 命令在 Windows 10 上使用 git bash 为我修复了这个问题。

我也将它设置为别名,以便使用 jq。

如何设置 docker env 值:

别名示例: docker run --rm -it -v c:/users/me/.aws:/root/.aws --env AWS_PAGER="" amazon/aws-cli