AWS sqs отправляет пакетное сообщение от 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 ответ
Решение
Вы очень близки!
Кли справка немного расплывчато об этом, но аргумент для --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. Это не нужно в этом случае