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. Это не нужно в этом случае

Другие вопросы по тегам