메시지 가져오기
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
, ExpirationTime
및 TimeNextVisible
요소는 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에 대한 요청 권한 부여
상태 및 오류 코드