메시지 가져오기

Get Messages 작업은 큐 앞에서 하나 이상의 메시지를 검색합니다.

요청

다음과 같이 Get Messages 요청을 생성할 수 있습니다. HTTPS를 사용하는 것이 좋습니다. myaccount를 스토리지 계정 이름으로 바꾸고 myqueue 를 큐 이름으로 바꿉니다.

메서드 요청 URI HTTP 버전
GET https://myaccount.queue.core.windows.net/myqueue/messages HTTP/1.1

에뮬레이트된 스토리지 서비스 요청

에뮬레이트된 스토리지 서비스에 대한 요청을 수행할 때 에뮬레이터 호스트 이름 및 Azure Queue Storage 포트를 로 127.0.0.1:10001지정한 다음 에뮬레이트된 스토리지 계정 이름을 지정합니다.

메서드 요청 URI HTTP 버전
GET http://127.0.0.1:10001/devstoreaccount1/myqueue/messages HTTP/1.1

자세한 내용은 로컬 Azure Storage 개발에 Azurite 에뮬레이터 사용을 참조하세요.

URI 매개 변수

요청 URI에 다음과 같은 추가 매개 변수를 지정할 수 있습니다.

매개 변수 Description
numofmessages 선택 사항입니다. 최대 32까지 큐에서 검색할 메시지 수를 지정하는 0이 아닌 정수 값입니다. 표시되는 메시지가 적으면 표시되는 메시지가 반환됩니다. 기본적으로 이 작업으로는 메시지에서 단일 메시지가 검색됩니다.
visibilitytimeout 선택 사항입니다. 서버 시간을 기준으로 새 표시 유형 제한 시간 값(초)을 지정합니다. 기본값은 30초입니다.

지정된 값은 1초보다 크거나 같아야 하며, 2011-08-18 이전의 REST 프로토콜 버전에서 7일보다 크거나 2시간을 초과할 수 없습니다. 메시지의 표시 유형 제한 시간은 만료 시간 이후의 값으로 설정할 수 있습니다.
timeout 선택 사항입니다. timeout 매개 변수는 초 단위로 표시됩니다. 자세한 내용은 Azure Queue Storage 작업에 대한 시간 제한 설정을 참조하세요.

요청 헤더

다음 표에서는 필수 요청 헤더와 선택적 요청 헤더에 대해 설명합니다.

요청 헤더 Description
Authorization 필수 요소. 권한 부여 체계, 계정 이름 및 서명을 지정합니다. 자세한 내용은 Azure Storage에 대한 요청 권한 부여를 참조하세요.
Date 또는 x-ms-date 필수 요소. 요청에 대한 UTC(협정 세계시)를 지정합니다. 자세한 내용은 Azure Storage에 대한 요청 권한 부여를 참조하세요.
x-ms-version 선택 사항입니다. 이 요청에 사용할 작업의 버전을 지정합니다. 자세한 내용은 Azure Storage 서비스에 대한 버전 관리를 참조하세요.
x-ms-client-request-id 선택 사항입니다. 로깅이 구성될 때 로그에 기록되는 1키비바이트(KiB) 문자 제한으로 클라이언트에서 생성된 불투명 값을 제공합니다. 이 헤더를 사용하여 클라이언트 쪽 활동과 서버가 수신하는 요청의 상관 관계를 지정하는 것이 좋습니다. 자세한 내용은 Azure Queue Storage 모니터링을 참조하세요.

요청 본문

없음

응답

응답에는 HTTP 상태 코드 및 응답 헤더 집합이 포함되어 있습니다.

상태 코드

작업에 성공하면 상태 코드 200(정상)이 반환됩니다.

상태 코드에 대한 자세한 내용은 상태 및 오류 코드를 참조하세요.

응답 헤더

이 작업의 응답에는 다음과 같은 헤더가 포함됩니다. 응답에는 추가 표준 HTTP 헤더가 포함될 수도 있습니다. 모든 표준 헤더는 HTTP/1.1 프로토콜 사양을 준수합니다.

응답 헤더 Description
x-ms-request-id 만들어진 요청을 고유하게 식별하고 요청 문제를 해결하는 데 사용할 수 있습니다. 자세한 내용은 API 작업 문제 해결을 참조하세요.
x-ms-version 요청을 실행하는 데 사용된 Azure Queue Storage 버전을 나타냅니다. 이 헤더는 버전 2009-09-19 이상에 대해 수행되는 요청에 대해 반환됩니다.
Date 서비스에서 생성된 UTC 날짜/시간 값으로, 응답이 시작된 시간을 나타냅니다.
x-ms-client-request-id 요청 및 해당 응답 문제를 해결하는 데 사용할 수 있습니다. 이 헤더의 값 x-ms-client-request-id 은 요청에 있고 값에 표시되는 ASCII 문자가 1,024자 이하인 경우 헤더 값과 같습니다. 헤더가 x-ms-client-request-id 요청에 없으면 응답에 표시되지 않습니다.

응답 본문

Get Messages 작업의 응답 XML은 다음 형식으로 반환됩니다.

MessageID 요소는 큐에서 메시지를 식별하는 GUID 값입니다. 이 값은 Azure Queue Storage에서 메시지에 할당되며 클라이언트에 불투명합니다. 값을 요소 값 PopReceipt 과 함께 사용하여 작업을 사용하여 Get Messages 메시지를 검색한 후 큐에서 메시지를 삭제할 수 있습니다. 의 PopReceipt 값도 클라이언트에 불투명합니다. 유일한 목적은 메시지 삭제 작업을 사용하여 메시지를 삭제할 수 있도록 하는 것입니다.

InsertionTime, ExpirationTimeTimeNextVisible 요소는 UTC 값으로 표현되며, RFC 1123 설명에 따라 형식이 지정됩니다.

DequeueCount 요소는 처음에 메시지를 큐에서 제거할 때 값 1을 갖습니다. 이 값은 이후에 메시지를 큐에서 제거할 때마다 증가합니다.

참고

요소는 DequeueCount Azure Queue Storage 버전 2009-09-19를 사용하여 큐를 만든 경우에만 응답 본문에 반환됩니다.

<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>  
      <DequeueCount>integer</DequeueCount>  
      <MessageText>message-body</MessageText>  
    </QueueMessage>  
</QueueMessagesList>  

샘플 응답

Response Status:  
HTTP/1.1 200 OK  
Response Headers:  
Transfer-Encoding: chunked  
Content-Type: application/xml  
Date: Fri, 16 Sep 2011 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 2009 21:04:30 GMT</InsertionTime>  
    <ExpirationTime>Fri, 16 Oct 2009 21:04:30 GMT</ExpirationTime>  
    <PopReceipt>YzQ4Yzg1MDItYTc0Ny00OWNjLTkxYTUtZGM0MDFiZDAwYzEw</PopReceipt>  
    <TimeNextVisible>Fri, 09 Oct 2009 23:29:20 GMT</TimeNextVisible>  
    <DequeueCount>1</DequeueCount>  
    <MessageText>PHRlc3Q+dGhpcyBpcyBhIHRlc3QgbWVzc2FnZTwvdGVzdD4=</MessageText>  
  </QueueMessage>  
</QueueMessagesList>  

권한 부여

이 작업은 계정 소유자 및 이 작업을 수행할 수 있는 권한이 있는 공유 액세스 서명을 갖는 모든 사용자가 수행할 수 있습니다.

설명

메시지 콘텐츠는 메시지 배치 작업에 사용된 형식으로 검색됩니다.

큐에서 메시지를 검색할 때 응답에는 메시지와 PopReceipt 값(메시지를 삭제할 때 필요함)이 포함됩니다. 메시지는 큐에서 자동으로 삭제되지 않지만 검색된 후에는 매개 변수로 지정된 시간 간격 동안 다른 클라이언트에 visibilitytimeout 표시되지 않습니다.

여러 메시지가 검색된 경우 각 메시지에는 연결된 PopReceipt가 포함됩니다. 동시에 검색할 수 있는 최대 메시지 수는 32개입니다.

메시지를 검색하는 클라이언트는 메시지가 처리된 후 및 응답의 요소에 의해 TimeNextVisible 지정된 시간 전에 메시지를 삭제해야 하며, 이는 매개 변수의 visibilitytimeout 값을 기반으로 계산됩니다. 값 visibilitytimeout 은 메시지를 검색하여 값을 TimeNextVisible결정하는 시간에 추가됩니다.

클록 기울이기 때문에 지정된 제한 시간이 경과하기 전에 특정 visibilitytimeout 으로 검색된 메시지가 다시 나타날 수 있습니다. 클라이언트는 메시지를 큐에서 제거할 때마다 고유한 팝 영수증에 따라 다른 클라이언트에서 메시지를 이미 큐에서 해제했다고 유추할 수 있습니다. 클라이언트의 팝 영수증이 더 이상 메시지를 삭제하거나 업데이트하는 데 작동하지 않고 클라이언트가 404(찾을 수 없음) 오류를 수신하면 다른 클라이언트가 메시지를 큐에서 제거합니다.

일반적으로 소비자가 를 통해 Get Messages메시지를 검색하는 경우 해당 메시지는 visibilitytimeout 간격이 만료될 때까지 삭제를 위해 예약됩니다. 그러나 이 동작은 보장되지 않습니다. visibilitytimeout 간격이 만료되면 메시지가 다른 소비자에게 다시 표시됩니다. 이후에 다른 소비자가 메시지를 검색하고 삭제하지 않으면 원래 소비자는 원래 팝 영수증을 사용하여 메시지를 삭제할 수 있습니다.

메시지를 처음 검색하면 해당 DequeueCount 속성이 1로 설정됩니다. 삭제되지 않고 이후에 다시 검색되면 속성이 DequeueCount 증가합니다. 클라이언트는 이 값을 사용해서 메시지가 검색된 횟수를 확인할 수 있습니다.

visibilitytimeout 또는 numofmessages 매개 변수가 범위를 벗어나면 서비스는 다음 예제와 같이 추가 오류 정보와 함께 상태 코드 400(잘못된 요청)을 반환합니다.

  
HTTP/1.1 400 One of the query parameters specified in the request URI is outside the permissible range.  
Connection: Keep-Alive  
Content-Length: 455  
Via: 1.1 TK5-PRXY-22  
Date: Wed, 02 May 2012 19:37:23 GMT  
Content-Type: application/xml  
Server: Windows-Azure-Queue/1.0 Microsoft-HTTPAPI/2.0  
x-ms-request-id: 6a03526c-ca2c-4358-a63a-b5d096988533  
x-ms-version: 2011-08-18  
  
<?xml version="1.0" encoding="utf-8"?>  
   <Error>  
      <Code>OutOfRangeQueryParameterValue</Code>  
      <Message>One of the query parameters specified in the request URI is outside the permissible range.  
               RequestId:6a03526c-ca2c-4358-a63a-b5d096988533  
               Time:2012-05-02T19:37:24.2438463Z  
      </Message>  
     <QueryParameterName>numofmessages</QueryParameterName>  
     <QueryParameterValue>0</QueryParameterValue>  
     <MinimumAllowed>1</MinimumAllowed>  
     <MaximumAllowed>32</MaximumAllowed>  
   </Error>  
  

추가 정보

Azure Queue Storage 오류 코드
Azure Storage에 대한 요청 권한 부여
상태 및 오류 코드