Estoy intentando utilizar la CLI de AWS junto con un bucle for en bash para purgar iterativamente varias colas de mensajes de SQS. El script bash funciona casi según lo previsto, el problema que tengo es con el valor de retorno cada vez que AWS CLI envía una solicitud. Cuando la solicitud tiene éxito, devuelve un valor vacío y abre un buscapersonas interactivo en la línea de comandos. Luego tengo que escribir q manualmente para salir de la pantalla interactiva y permitir que el ciclo for continúe con la siguiente iteración. Esto se vuelve muy tedioso y requiere mucho tiempo cuando se intenta purgar una gran cantidad de colas.
¿Hay alguna manera de configurar AWS CLI para deshabilitar este buscapersonas interactivo para que no aparezca con cada valor devuelto? ¿O una forma de canalizar los valores de retorno en un archivo separado en lugar de mostrarlos?
He jugado con la configuración de diferentes tipos de valor de retorno (texto, yaml, JSON) pero no he tenido suerte. Además, el parámetro --no-pagination no cambia el comportamiento.
Aquí hay un ejemplo del script bash que estoy tratando de ejecutar:
for x in 1 2 3; do aws sqs purge-queue --queue-url https://sqs.<aws-region>.amazonaws.com/<id>/<env>-$x-<queueName>.fifo; donePuede establecer la variable de entorno PAGER en "cat" para obligar a awscli a no iniciar less :
PAGER=cat aws sqs list-queues
Configuré como un alias de shell para hacerme la vida más fácil:
# ~/.zshrc alias aws="PAGER=cat aws"Al encontrarme con este problema, pude desactivar el comportamiento invocando aws cli como AWS_PAGER="" aws ... .
Alternativamente, podría simplemente export AWS_PAGER="" en la parte superior de su secuencia de comandos (bash).
Fuente: https://github.com/aws/aws-cli/pull/4702#issue-344978525
Puede deshabilitar el buscapersonas exportando AWS_PAGER="" o modificando su archivo de configuración cli de AWS.
export AWS_PAGER="" ### or update your ~/.aws/config with [default] cli_pager= Alternativamente, puede habilitar el buscapersonas predeterminado para la salida de less programa como
export AWS_PAGER="less"o cambio de configuración correspondiente.
Estoy usando aws cli v2 a través de la ventana acoplable y pasando --env AWS_PAGER="" en el comando de ejecución de la ventana acoplable me solucionó este problema en Windows 10 usando git bash.
También lo configuré como un alias para que las cosas funcionen con jq.
Cómo configurar los valores de su docker env:
Ejemplo de alias: docker run --rm -it -vc:/users/me/.aws:/root/.aws --env AWS_PAGER="" amazon/aws-cli
También puede usar --no-cli-pager en AWS CLI versión 2.
Consulte la sección "Buscapersonas del lado del cliente" aquí https://docs.aws.amazon.com/cli/latest/userguide/cli-usage-pagination.html
Dentro de su archivo ~/.aws/config, agregue:
cli_pager=