2014-09-15 2 views
1

я пытаюсь добавить сообщение в очередь в амазонки AWS SQSкарту тип данных в AWS Cli

так я попробовал этот

root~# aws sqs send-message --queue-url "queue/url" --message-body "message with attribute" --message-attributes '{"Name": "somename", "Type":"String", "Value":"somevalue"}' 

бит это дает мне эту ошибку

'unicode' object has no attribute 'keys' 

но если я удалю часть --message-attributes из команды

root~# aws sqs send-message --queue-url "queue/url" --message-body "message with attribute" 

то работает идеально

http://docs.aws.amazon.com/cli/latest/reference/sqs/send-message.html

я думаю, что это тип карты, как можно отправить этот параметр в формате карты

--message-attributes (map)

ответ

5

Вам необходимо пройти --message-attributes (map) данные structre как {attr1 : {"DataType":"type1.option", "StringValue":val1}, attr2 : {"DataType":"typ2.option", "StringValue":val2}, ...}

Таким образом, ваш пример выглядит следующим образом:

очереди отправки

$ aws sqs send-message --queue-url "queue/url" --message-body "message with attribute" --message-attributes '{"somename" : { "DataType":"String", "StringValue":"somevalue"}}' 
{ 
    "MD5OfMessageBody": "ZZZZ", 
    "MD5OfMessageAttributes": "YYYY", 
    "MessageId": "06524772-XXXX" 
} 

получать очередь нужно

$ aws sqs receive-message --queue-url "queue/url" --message-attribute-names somename 
{ 
    "Messages": [ 
     { 
      "Body": "message with attribute", 
      "ReceiptHandle": "dummy==", 
      "MD5OfBody": "ZZZZ", 
      "MD5OfMessageAttributes": "YYYYS", 
      "MessageId": "06524772-XXXX", 
      "MessageAttributes": { 
       "somename": { 
        "DataType": "String", 
        "StringValue": "somevalue" 
       } 
      } 
     } 
    ] 
} 
+0

да он работал для меня спасибо – Terence

Смежные вопросы