次の方法で共有


メッセージの配置

Put Message操作により、新しいメッセージがメッセージ・キューの背面に追加されます。 可視性タイムアウトを指定して、可視性タイムアウトの期限が切れるまでメッセージを非表示にすることもできます。 メッセージは、UTF-8 エンコードを使用して XML 要求に含めることができる形式である必要があります。 エンコードされたメッセージのサイズは、バージョン 2011-08-18 以降では最大 64 キビバイト (KiB)、以前のバージョンでは 8 KiB です。

リクエスト

Put Message 要求は次のように構築できます。 HTTPS を使用することをお勧めします。 myaccount をストレージ アカウントの名前に、myqueue をキューの名前に置き換えます。

メソッド 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 として指定し、その後にエミュレートされたストレージ アカウント名を指定します。

メソッド 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 日を超えることはできません。 メッセージの表示タイムアウトを有効期限より後の値に設定することはできません。 visibilitytimeout を time-to-live 値よりも小さい値に設定します。
messagettl=<int-seconds> 任意。 メッセージの有効期間を秒単位で指定します。 2017-07-29 より前のバージョンでは、許可される最大有効期限は 7 日間です。 バージョン 2017-07-29 以降では、最大有効期間は任意の正の数と、メッセージの有効期限が切れないことを示す -1 にすることができます。 このパラメーターを省略すると、既定の有効期間は 7 日間です。
timeout 任意。 timeout パラメーターは秒単位で表されます。 詳細については、「Queue サービス操作のタイムアウトを設定する」を参照してください。

要求ヘッダー

必須の要求ヘッダーと省略可能な要求ヘッダーを次の表に示します。

リクエストヘッダー 説明
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>  

[応答]

応答には、HTTP 状態コードと一連の応答ヘッダーが含まれます。

状態コード

操作が成功すると、状態コード 201 (Created) が返されます。

状態コードの詳細については、「状態コードとエラー コードを参照してください。

応答ヘッダー

この操作の応答には、次のヘッダーが含まれます。 応答には、追加の標準 HTTP ヘッダーも含まれる場合があります。 すべての標準ヘッダーは、HTTP/1.1 プロトコル仕様に準拠しています。

リクエストヘッダー 説明
x-ms-request-id 作成された要求を一意に識別し、それを使用して要求のトラブルシューティングを行うことができます。 詳細については、「API 操作のトラブルシューティング」を参照してください。
x-ms-version 要求の実行に使用された Queue サービスのバージョンを示します。 このヘッダーは、バージョン 2009-09-19 以降に対して行われた要求に対して返されます。
Date サービスによって生成される UTC 日付/時刻値。応答が開始された時刻を示します。
x-ms-client-request-id このヘッダーは、要求と対応する応答のトラブルシューティングに使用できます。 このヘッダーの値は、要求に存在し、1,024 文字以下の ASCII 文字が含まれている場合、x-ms-client-request-id ヘッダーの値と同じです。 x-ms-client-request-id ヘッダーが要求に存在しない場合、応答には存在しません。

応答内容

バージョン 2016-05-31 の時点では、 Put Message 操作の応答には、応答本文にメッセージ情報が含まれています。 返される本文の XML 形式については、こちらで説明します。

MessageID 要素は、キュー内のメッセージを識別する GUID 値です。 この値は Queue Storage によってメッセージに割り当てられ、クライアントに対しては不透明です。 この値は、PopReceipt 要素の値と共に使用して、キューからメッセージを削除または更新できます。 PopReceipt の値もクライアントに対して不透明であり、Delete Message API または Update Message API を使用している場合に必要です。

InsertionTimeExpirationTimeTimeNextVisible 要素は UTC 値として表され、RFC 1123 で説明されているように書式設定されます。

<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 要求に含めることができる形式である必要があります。 メッセージにマークアップを含めるには、メッセージの内容が Base64 でエンコードされている必要があります。 エンコードされていないメッセージ内の XML マークアップは、メッセージが無効になります。 無効な文字 ( 0x1F など) がメッセージに含まれている場合、XML でエスケープされていても、その後のメッセージの読み取りは成功しません。

メッセージが大きすぎる場合、サービスはステータス コード 400 (Bad Request) を返します。

こちらも参照ください

Azure Storage への要求を承認する
状態コードとエラー コード
キュー サービスのエラー コード