Put Message
Put Message
操作は、新しいメッセージをメッセージ キューの末尾に追加します。 可視性のタイムアウトを指定して、可視性のタイムアウトが切れるまでメッセージを非表示にすることもできます。 メッセージは、UTF-8 エンコードされた XML 要求に含めることができる形式である必要があります。 エンコードされたメッセージのサイズは、バージョン 2011-08-18 以降では最大 64 kibibytes (KiB)、以前のバージョンでは 8 KiB にすることができます。
要求
要求は Put Message
次のように構築できます。 HTTPS を使用することをお勧めします。
myaccount をストレージ アカウントの名前に置き換え、myqueue
キューの名前に置き換えます。
Method | 要求 URI | HTTP バージョン |
---|---|---|
POST |
https://myaccount.queue.core.windows.net/myqueue/messages?visibilitytimeout=<int-seconds>&messagettl=<int-seconds> |
HTTP/1.1 |
エミュレートされたストレージ サービス要求
エミュレートされたストレージ サービスに対して要求を行う場合は、エミュレーターのホスト名とキュー ストレージ ポートを として 127.0.0.1:10001
指定し、その後にエミュレートされたストレージ アカウント名を指定します。
Method | 要求 URI | HTTP バージョン |
---|---|---|
POST |
http://127.0.0.1:10001/devstoreaccount1/myqueue/messages?visibilitytimeout=<int-seconds>&messagettl=<int-seconds> |
HTTP/1.1 |
詳細については、ローカルでの Azure Storage の開発に Azurite エミュレーターを使用する方法に関するページを参照してください。
URI パラメーター
要求 URI には、次のパラメーターを指定できます。
パラメーター | 説明 |
---|---|
visibilitytimeout=<int=seconds> |
省略可能。 サーバー時刻に対する新しい可視性タイムアウト値を秒単位で指定します。 指定されている場合は、2011-08-18 以降の を x-ms-version 使用して要求を行う必要があります。 指定しない場合、既定値は 0 です。 新しい値は 0 以上である必要があり、7 日を超えることはできません。 メッセージの可視性のタイムアウトを、有効期限より後の値に設定することはできません。 time-to-live 値より小さい値に設定 visibilitytimeout します。 |
messagettl=<int-seconds> |
省略可能。 メッセージの有効期限を秒単位で指定します。 2017-07-29 より前のバージョンでは、最大有効期間は 7 日です。 バージョン 2017-07-29 以降の場合、最大有効期間には任意の正の数 と -1 を指定できます。これは、メッセージの有効期限が切れないことを示します。 このパラメーターが省略されている場合、既定の有効期限は 7 日です。 |
timeout |
省略可能。
timeout パラメーターは、秒単位で表されます。 詳細については、「 キュー サービス操作のタイムアウトを設定する」を参照してください。 |
要求ヘッダー
必須の要求ヘッダーと省略可能な要求ヘッダーを次の表に示します。
要求ヘッダー | 説明 |
---|---|
Authorization |
必須。 承認スキーム、アカウント名、署名を指定します。 詳細については、「Azure Storage への要求を承認する」をご覧ください。 |
Date or x-ms-date |
必須。 要求に対して協定世界時 (UTC) を指定します。 詳細については、「Azure Storage への要求を承認する」をご覧ください。 |
x-ms-version |
省略可能。 この要求に使用する操作のバージョンを指定します。 詳細については、「Azure Storage サービスのバージョン管理」を参照してください。 |
x-ms-client-request-id |
省略可能。 ログ記録の構成時にログに記録される 1 kibibyte (KiB) 文字制限を使用して、クライアントによって生成された不透明な値を提供します。 このヘッダーを使用して、クライアント側のアクティビティとサーバーが受信する要求を関連付けるよう強くお勧めします。 |
要求本文
要求の本文には、次の XML 形式のメッセージ データが含まれます。 メッセージの内容は UTF-8 でエンコードできる形式である必要があることに注意してください。
<QueueMessage>
<MessageText>message-content</MessageText>
</QueueMessage>
要求のサンプル
Request:
POST https://myaccount.queue.core.windows.net/messages?visibilitytimeout=30&timeout=30 HTTP/1.1
Headers:
x-ms-version: 2011-08-18
x-ms-date: Tue, 30 Aug 2011 01:03:21 GMT
Authorization: SharedKey myaccount:sr8rIheJmCd6npMSx7DfAY3L//V3uWvSXOzUBCV9wnk=
Content-Length: 100
Body:
<QueueMessage>
<MessageText>PHNhbXBsZT5zYW1wbGUgbWVzc2FnZTwvc2FtcGxlPg==</MessageText>
</QueueMessage>
Response
応答には、HTTP 状態コードおよび一連の応答ヘッダーが含まれています。
状態コード
操作が正常に終了すると、状態コード 201 (Created) が返されます。
状態コードの詳細については、「 状態とエラー コード」を参照してください。
応答ヘッダー
この操作の応答には、次のヘッダーが含まれています。 応答に追加の標準 HTTP ヘッダーが含まれる場合もあります。 すべての標準ヘッダーは 、HTTP/1.1 プロトコル仕様に準拠しています。
要求ヘッダー | 説明 |
---|---|
x-ms-request-id |
行われた要求を一意に識別し、それを使用して要求のトラブルシューティングを行うことができます。 詳細については、「 API 操作のトラブルシューティング」を参照してください。 |
x-ms-version |
要求の実行に使用されたキュー サービスのバージョンを示します。 このヘッダーは、バージョン 2009-09-19 以降に対して行われた要求に対して返されます。 |
Date |
サービスによって生成される UTC 日付/時刻値。応答が開始された時刻を示します。 |
x-ms-client-request-id |
このヘッダーは、要求と対応する応答のトラブルシューティングに使用できます。 このヘッダーの値 x-ms-client-request-id は、要求に存在し、値に 1,024 文字以下の ASCII 文字が含まれている場合、ヘッダーの値と同じです。 ヘッダーが x-ms-client-request-id 要求に存在しない場合、応答には存在しません。 |
応答本文
バージョン 2016-05-31 の時点で、操作の応答 Put Message
には応答本文にメッセージ情報が含まれています。 返される本文の XML 形式については、こちらを参照してください。
MessageID
要素は、キュー内のメッセージを識別する GUID 値です。 この値は Queue Storage によってメッセージに割り当てられ、クライアントには不透明です。 この値は、キューからメッセージを削除または更新するために、PopReceipt 要素の値と共に使用できます。 PopReceipt の値はクライアントにも不透明であり、メッセージの削除またはメッセージの更新 API を使用する場合に必要です。
InsertionTime
、ExpirationTime
、TimeNextVisible
の各要素は、RFC 1123 に準拠した形式の UTC 値で表記されます。
<QueueMessagesList>
<QueueMessage>
<MessageId>string-message-id</MessageId>
<InsertionTime>insertion-time</InsertionTime>
<ExpirationTime>expiration-time</ExpirationTime>
<PopReceipt>opaque-string-receipt-data</PopReceipt>
<TimeNextVisible>time-next-visible</TimeNextVisible>
</QueueMessage>
</QueueMessagesList>
応答のサンプル
Response Status:
HTTP/1.1 200 OK
Response headers:
Transfer-Encoding: chunked
Content-Type: application/xml
x-ms-version: 2016-05-31
Date: Fri, 09 Oct 2016 21:04:30 GMT
Server: Windows-Azure-Queue/1.0 Microsoft-HTTPAPI/2.0
Response Body:
<?xml version="1.0" encoding="utf-8"?>
<QueueMessagesList>
<QueueMessage>
<MessageId>5974b586-0df3-4e2d-ad0c-18e3892bfca2</MessageId>
<InsertionTime>Fri, 09 Oct 2016 21:04:30 GMT</InsertionTime>
<ExpirationTime>Fri, 16 Oct 2016 21:04:30 GMT</ExpirationTime>
<PopReceipt>YzQ4Yzg1MDItYTc0Ny00OWNjLTkxYTUtZGM0MDFiZDAwYzEw</PopReceipt>
<TimeNextVisible>Fri, 09 Oct 2016 23:29:20 GMT</TimeNextVisible>
</QueueMessage>
</QueueMessagesList>
承認
この操作は、アカウント所有者と、この操作を実行するためのアクセス許可を持つ共有アクセス署名を持つすべてのユーザーが実行できます。
注釈
オプションの可視性タイムアウトは、メッセージが非表示の時刻を指定します。 タイムアウトが切れると、メッセージが表示されるようになります。 表示タイムアウトを指定しない場合は、既定値の 0 が使用されます。
オプションのメッセージの有効期間は、メッセージがキューに残っている時間を指定します。 メッセージは、有効期限が切れるとキューから削除されます。
メッセージは、UTF-8 エンコードされた XML 要求に含めることができる形式である必要があります。 メッセージにマークアップを含めるには、メッセージのコンテンツが XML エスケープされているか、Base64 エンコードである必要があります。 エスケープまたはエンコードされていないメッセージ内の XML マークアップは、メッセージがキューに追加される前に削除されます。
メッセージが大きすぎる場合、サービスはステータス コード 400 (Bad Request) を返します。