如何通过JMESPath查询实现AWS SQS队列URL的每行单条输出?
解决方法
直接通过JMESPath的join函数结合--output text就能实现每行输出一个SQS队列URL,无需额外的sed等工具处理:
aws sqs list-queues --query "join('\n', QueueUrls[])" --output text
原理说明
QueueUrls[]提取所有队列URL的数组join('\n', ...)将数组中的每个元素用换行符(\n)拼接成单个字符串--output text确保输出时直接打印拼接后的字符串,不会添加JSON格式的引号或括号
复杂场景扩展
如果需要先过滤队列再输出(比如只保留包含特定关键词的队列),可以在JMESPath中结合过滤表达式:
aws sqs list-queues --query "join('\n', QueueUrls[] | [?contains(@, 'production')])" --output text
这个写法会先筛选出URL中包含production的队列,再按每行一个的格式输出,完全通过JMESPath逻辑完成,适配更复杂的AWS资源查询场景。
内容的提问来源于stack exchange,提问作者WesAtWork
相关产品推荐
相关产品推荐

