簡體   English   中英

sqs 的 aws-cli 中 send-message 命令中消息屬性的簡寫語法

[英]Shorthand syntax for message-attributes in the send-message command in aws-cli for sqs

嘗試使用適用於 SQS 的 AWS CLI 發送消息時,我無法使--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 的類型無效,值:StringValue=Snapshot,類型:,有效類型:

有人曾經使用速記管理過消息的發送屬性嗎?

目前,-- --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"} }'

您的速記語法格式是正確的:

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"}'

上面的快捷語法應該正確地生成帶有 2 個額外標頭的消息,即消息屬性:

firstAttribute=hello world
secondAttribute=goodbye world

筆記:

一個屬性是一個<class 'dict'> ,所以每個屬性看起來都像一個字典: {DataType=String, StringValue=MY_VALUE}

  • 其中支持的DataTypeStringNumberBinary

  • 每個 DataType 值都可以包含一個可選的自定義擴展,AWS 會忽略該擴展。 例如: String.uuidNumber.intBinary.pdf

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM