尝试使用AWS CLI for SQS发送消息时,我无法获得--message-attributes
参数的简写语法。
指定json文件可以正常工作,并且引用没有显示简写选项的示例。
以下是此命令的参考,它指定了我尝试使用的简写,但我无法使其工作:http://docs.aws.amazon.com/cli/latest/reference/sqs/send-message.html
这是我尝试过的命令:
aws sqs send-message
--queue-url https://sqs.us-east-1.amazonaws.com/0000000000/aa_queue_name
--message-body "message body goes here"
--message-attributes firstAttribute={DataType=String,StringValue="hello world"},secondAttribute={DataType=String,StringValue="goodbye world"}
我不断收到错误消息:
参数验证失败:参数的类型无效 MessageAttributes.contentType,value:StringValue = Snapshot,type: ,有效类型:
有人曾经使用速记来管理邮件的发送属性吗?
答案 0 :(得分:9)
目前,--message-attributes
选项的简写语法文档不正确,而且简写语法不起作用。
相反,您可以使用JSON文件(如您所述)。您还可以使用内联JSON:
aws sqs send-message
--queue-url https://sqs.us-east-1.amazonaws.com/0000000000/aa_queue_name
--message-body "message body goes here"
--message-attributes '{ "firstAttribute":{ "DataType":"String","StringValue":"hello world" }, "secondAttribute":{ "DataType":"String","StringValue":"goodbye world"} }'
答案 1 :(得分:2)
您的速记语法格式正确:
MY_KEY = {DataType = 字符串,StringValue = MY_VALUE }
您只是忘了在命令行选项中用单引号或双引号引起来:
aws sqs send-message \
--queue-url https://sqs.us-east-1.amazonaws.com/0000000000/aa_queue_name \
--message-body "message body goes here" \
--message-attributes 'firstAttribute={DataType=String, StringValue="hello world"}, secondAttribute={DataType=String,StringValue="goodbye world"}'
上面的快捷方式语法应该正确地产生一条带有2个额外标题的消息,也就是消息属性:
firstAttribute=hello world
secondAttribute=goodbye world
注意:
一个属性是一个<class 'dict'>
,因此每个属性看起来像一个字典:{DataType=String, StringValue=MY_VALUE}
,
受支持的DataType
是字符串,数字和
二进制。
每个DataType值可以包含一个可选的自定义扩展名,aws会忽略它。例如: String.uuid , Number.int , Binary.pdf 。