AWS sqs从cli发送消息批处理

时间:2016-07-29 12:20:22

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

我正在尝试使用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'

知道我做错了吗?

1 个答案:

答案 0 :(得分:2)

你很亲密!
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的形式提供命令的所有参数(不是单个参数)。在这种情况下它是不必要的