【问题标题】:AWS sqs send message batch from cliAWS sqs 从 cli 发送消息批处理
【发布时间】:2016-08-03 21:50:19
【问题描述】:

我正在尝试使用 aws cli 从命令行发送一批消息。该命令如下所示:

aws sqs send-message-batch \
    --queue-url https://sqs.us-west-2.amazonaws.com/... \
    --region=us-west-2 \
    --cli-input-json "[{\"Id\":\"1\",\"MessageBody\":\"[344ED079FC85292446B193170E02F6C51882A761]\"},{\"Id\":\"2\",\"MessageBody\":\"[B584291B654587C7C957E10DF8B50FB31B2F589E]\"}]"

问题是它返回错误代码 255:

'list' object has no attribute 'keys'

知道我做错了什么吗?

【问题讨论】:

  • 我从来没有幸运地使用过 cli-input-json。将您的消息保存为 Json 文件并将此文件引用为 `--entries file://path/to/file.json
  • 是的,考虑到这一点。问题是我有 10k 条消息要发送,为每 10 批创建一个文件是一个丑陋的解决方案:(

标签: amazon-web-services amazon-sqs aws-cli


【解决方案1】:

你很亲密!
cli 帮助对此有点模糊,但--entries 参数的参数可以直接使用 JSON 或速记语法(没有 cli-input-json)提供。所以你的命令应该是这样的:

aws sqs send-message-batch \
    --queue-url https://sqs.us-west-2.amazonaws.com/... \
    --region=us-west-2 \
    --entries "[{\"Id\":\"1\",\"MessageBody\":\"[344ED079FC85292446B193170E02F6C51882A761]\"},{\"Id\":\"2\",\"MessageBody\":\"[B584291B654587C7C957E10DF8B50FB31B2F589E]\"}]"

--cli-input-json 参数是可用于所有 cli 命令的可选参数,它允许您以 json 格式为命令提供所有参数(而非单个参数)。在这种情况下是不必要的

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    • 2022-01-25
    • 1970-01-01
    相关资源
    最近更新 更多