2016-07-29 15 views
2

aws cliを使用してコマンドラインからメッセージのバッチを送信しようとしています。コマンドは次のようになります。AWS sqsが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' 

私が間違っているの何任意のアイデア?

+0

私はcli-input-jsonを使用してラッキーだったことはありません。あなたのメッセージをJsonファイルとして保存し、このファイルを '--entries file://path/to/file.json 'として参照してください。 –

+0

そうですね。問題は、私は10kのメッセージを送信する必要があり、10バッチごとにファイルを作成するのは醜い解決策です。 – Petru

答えて

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パラメータを使用すると、JSONとしてコマンドのすべての引数(ではない個別)を提供することを可能にするすべてのCLIコマンドで利用できるオプションのパラメータです。この場合には不要です

関連する問題