1. 程式人生 > 其它 >【Azure 儲存服務】使用POST方式向Azure Storage Queue中插入Message的辦法

【Azure 儲存服務】使用POST方式向Azure Storage Queue中插入Message的辦法

問題描述

使用POST HTTP Request, 如何向Azure Storage Queue中寫入Message呢?例如使用CURL傳送POST指令是否可以呢?

CURL -H "Content-Type: application/xml" -X POST -d "message body" "azure storage queue endpoint"

問題解答

可以的,首先從Azure Storage Account中獲取訪問令牌,示例中使用的為SAS(Shared access signature : 共享訪問簽名)。然後直接傳送POST請求。

第一步:獲取SAS Token,進入Storage Account的
Shared access signature 頁面,選擇“Queue” ,Allow resource type全部選擇,然後根據所需要的操作設定Allow Permissions。

第二步:拼接 Endpoint。把上一步的SAS Token複製出來,與Queue的地址進行拼接:

完整的Endpoint URL為:

https://xxxxxxxx.queue.core.chinacloudapi.cn
/testpostmethod
/messages
?sv=2020-02-10&ss=bfqt&srt=sco&sp=rwdlacupx&se=2021-10-16T15:10
:22Z&st=2021-10-16T07:10:22Z&spr=https&sig=f%2Fktxxxxxc8qNeeAM9izhpAZttlpGivTLc%3D

第三步:傳送POST 請求,訊息體為XML格式<QueueMessage><MessageText>【message body】</MessageText></QueueMessage>

<QueueMessage>
<MessageText>Test the Azure Storage message 1016 -1</MessageText
> </QueueMessage>
  • Postman VS CURL

  • CURL 示例:
curl -H "Content-Type: application/xml" 
-X POST
-d "<QueueMessage><MessageText>Test the Azure Storage message 1016 - 9</MessageText></QueueMessage>"
"https://xxxxxxxx.queue.core.chinacloudapi.cn/testpostmethod/messages?sv=2020-02-10&ss=bfqt&srt=sco&sp=rwdlacupx&se=2021-10-16T15:10:22Z&st=2021-10-16T07:10:22Z&spr=https&sig=f%2FkttQxxxxxxxxAZttlpGivTLc%3D"
-v

第四步:在Queue中檢視資料

參考資料

Azure Storage Account Queue -Put Message :https://docs.microsoft.com/en-us/rest/api/storageservices/put-message

ThePut Messageoperation adds a new message to the back of the message queue. A visibility timeout can also be specified to make the message invisible until the visibility timeout expires. A message must be in a format that can be included in an XML request with UTF-8 encoding. The encoded message can be up to 64 KiB in size for versions 2011-08-18 and newer, or 8 KiB in size for previous versions.

ThePut Messagerequest may be constructed as follows. HTTPS is recommended. Replacemyaccountwith the name of your storage account, andmyqueuewith the name of your queue:

當在複雜的環境中面臨問題,格物之道需:濁而靜之徐清,安以動之徐生。 雲中,恰是如此!