aws-cli中sqs的send-message命令中消息属性的简写语法

ali*_*fib 7 amazon-sqs amazon-web-services aws-cli

尝试使用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"}
Run Code Online (Sandbox Code Playgroud)

我不断收到错误消息:

参数验证失败:参数MessageAttributes.contentType的类型无效,值:StringValue =快照,类型:,有效类型:

有人曾经使用速记管理发送消息属性?

Mat*_*ser 11

目前,该--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"} }'
Run Code Online (Sandbox Code Playgroud)

  • 此答案提供了有效的 JSON 样式解决方法,但没有回答原始的“简写样式”问题。它不应该是被接受的。@epox 的答案演示了“简写语法”的用法。后一个答案应该被接受。 (2认同)

epo*_*pox 6

您的速记语法格式正确:

MY_KEY ={DataType= String , 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"}'
Run Code Online (Sandbox Code Playgroud)

上面的快捷语法应该正确地生成带有 2 个额外标题的消息,也就是消息属性:

firstAttribute=hello world
secondAttribute=goodbye world
Run Code Online (Sandbox Code Playgroud)

笔记:

一个属性是一个<class 'dict'>,所以每一个属性看起来像一本字典:{DataType=String, StringValue=MY_VALUE}

  • 其中支持的DataTypes 是StringNumberBinary

  • 每个 DataType 值都可以包含一个可选的自定义扩展,aws 会忽略该扩展。例如:String.uuidNumber.intBinary.pdf

https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-message-attributes.html#message-attribute-components