메시지 업데이트
Update Message
작업은 메시지의 표시 제한 시간을 업데이트합니다. 또한 이 작업을 사용해서 메시지의 콘텐츠를 업데이트할 수도 있습니다. 메시지는 UTF-8 인코딩을 사용하여 XML 요청에 포함할 수 있는 형식이어야 하며 인코딩된 메시지의 크기는 최대 64KB일 수 있습니다. 이 작업은 Azure Queue Storage API 버전 2011-08-18에서 도입되었습니다.
요청
다음과 같이 요청을 생성할 Update Message
수 있습니다. HTTPS를 사용하는 것이 좋습니다.
myaccount를 스토리지 계정의 이름으로 바꾸고 myqueue를 큐 이름으로 바꿉니다.
메서드 | 요청 URI | HTTP 버전 |
---|---|---|
PUT |
https://myaccount.queue.core.windows.net/myqueue/messages/messageid?popreceipt=<string-value>&visibilitytimeout=<int-seconds> |
HTTP/1.1 |
에뮬레이트된 스토리지 서비스
이 작업은 SDK 1.6 이상 버전에서 지원됩니다.
에뮬레이트된 스토리지 서비스에 대해 요청할 때 에뮬레이터 호스트 이름 및 Queue Storage 포트를 로 127.0.0.1:10001
지정한 다음 에뮬레이트된 스토리지 계정 이름을 지정합니다.
메서드 | 요청 URI | HTTP 버전 |
---|---|---|
PUT |
http://127.0.0.1:10001/devstoreaccount1/myqueue/messages/messageid?popreceipt=<string-value>&visibilitytimeout=<int-seconds> |
HTTP/1.1 |
URI 매개 변수
요청 URI에서 다음 매개 변수를 지정할 수 있습니다.
매개 변수 | Description |
---|---|
popreceipt |
필수 요소.
메시지 가져오기 또는 메시지 업데이트 작업에 대한 이전 호출에서 반환된 유효한 팝 영수증 값을 지정합니다. 는 popreceipt URL로 인코딩되어야 합니다. |
visibilitytimeout |
필수 요소. 서버 시간을 기준으로 새로운 표시 제한 시간 값(초)을 지정합니다. 새 값은 0보다 크거나 같아야 하며 7일보다 클 수 없습니다. 메시지의 표시 유형 시간 제한은 만료 시간 이후의 값으로 설정할 수 없습니다. 삭제되거나 만료될 때까지 메시지를 업데이트할 수 있습니다. |
timeout |
선택 사항입니다.
timeout 매개 변수는 초 단위로 표시됩니다. 자세한 내용은 Queue Storage 작업에 대한 시간 제한 설정을 참조하세요. |
요청 헤더
다음 표에서는 필수 요청 헤더와 선택적 요청 헤더에 대해 설명합니다.
요청 헤더 | Description |
---|---|
Authorization |
필수 요소. 권한 부여 체계, 계정 이름 및 서명을 지정합니다. 자세한 내용은 Azure Storage에 대한 요청 권한 부여를 참조하세요. |
Date or x-ms-date |
필수 요소. 요청에 대한 UTC(협정 세계시)를 지정합니다. 자세한 내용은 Azure Storage에 대한 요청 권한 부여를 참조하세요. |
x-ms-version |
2011-08-18 이상이 필요합니다. 이 요청에 사용할 작업의 버전을 지정합니다. 자세한 내용은 Azure Storage 서비스에 대한 버전 관리를 참조하세요. |
x-ms-client-request-id |
선택 사항입니다. 로깅이 구성될 때 로그에 기록되는 1키비바이트(KiB) 문자 제한으로 클라이언트에서 생성된 불투명 값을 제공합니다. 이 헤더를 사용하여 클라이언트 쪽 활동과 서버가 수신하는 요청의 상관 관계를 지정하는 것이 좋습니다. 자세한 내용은 Azure Queue Storage 모니터링을 참조하세요. |
요청 본문
요청 본문에는 다음 XML 형식의 메시지 데이터가 포함됩니다. 메시지 콘텐츠는 UTF-8로 인코딩할 수 있는 형식이어야 합니다.
<QueueMessage>
<MessageText>message-content</MessageText>
</QueueMessage>
응답
응답에는 HTTP 상태 코드 및 응답 헤더 집합이 포함되어 있습니다.
상태 코드
작업이 성공하면 상태 코드 204(콘텐츠 없음)이 반환됩니다. 상태 코드에 대한 자세한 내용은 상태 및 오류 코드를 참조하세요.
응답 헤더
이 작업의 응답에는 다음과 같은 헤더가 포함됩니다. 응답에는 표준 HTTP 헤더가 추가로 포함될 수도 있습니다. 모든 표준 헤더는 HTTP/1.1 프로토콜 사양을 준수합니다.
요청 헤더 | Description |
---|---|
x-ms-request-id |
이 헤더는 만들어진 요청을 고유하게 식별하며 요청 문제 해결에 사용할 수 있습니다. 자세한 내용은 API 작업 문제 해결을 참조하세요. |
x-ms-version |
요청을 실행하는 데 사용되는 Queue Storage의 버전을 나타냅니다. 이 헤더는 2009-09-19 버전 이상에 대해 수행된 요청에 대해 반환됩니다. |
Date |
응답이 시작된 시간을 나타내는 UTC 날짜/시간 값입니다. 서비스에서 이 값을 생성합니다. |
x-ms-popreceipt |
큐 메시지의 PopReceipt입니다. |
x-ms-time-next-visible |
메시지가 큐에 표시될 때를 나타내는 UTC 날짜/시간 값입니다. |
x-ms-client-request-id |
이 헤더를 사용하여 요청 및 해당 응답 문제를 해결할 수 있습니다. 이 헤더의 값은 요청에 있는 경우 헤더 값 x-ms-client-request-id 과 같습니다. 이 값은 최대 1,024자 표시 ASCII 문자입니다. 헤더가 x-ms-client-request-id 요청에 없는 경우 이 헤더는 응답에 존재하지 않습니다. |
응답 본문
없음
권한 부여
계정 소유자는 이 작업을 수행할 수 있습니다. 또한 이 작업을 수행할 수 있는 권한이 있는 공유 액세스 서명이 있는 모든 사용자가 이 작업을 수행할 수 있습니다.
샘플 요청 및 응답
다음 요청은 큐 메시지의 표시 시간을 30초 연장하고 해당 콘텐츠를 업데이트합니다.
PUT https://myaccount.queue.core.windows.net/myqueue/messages/663d89aa-d1d9-42a2-9a6a-fcf822a97d2c?popreceipt=AgAAAAEAAAApAAAAGIw6Q29bzAE%3d&visibilitytimeout=30&timeout=30 HTTP/1.1
이 요청은 다음 헤더와 함께 전송되었습니다.
x-ms-version: 2011-08-18
x-ms-date: Mon, 29 Aug 2011 17:17:21 GMT
Authorization: SharedKey myaccount:batcrWZ35InGCZeTUFWMdIQiOZPCW7UEyeGdDOg7WW4=
Content-Length: 75
이 요청은 다음 XML 본문과 함께 전송되었습니다.
<QueueMessage>
<MessageText>new-message-content</MessageText>
</QueueMessage>
요청이 전송된 후에는 다음과 같은 응답이 반환됩니다.
HTTP/1.1 204 No Content
Content-Length: 0
Server: Windows-Azure-Queue/1.0 Microsoft-HTTPAPI/2.0
x-ms-request-id: df34a7dd-3cbe-4206-a586-d6de3cf225a7
x-ms-version: 2011-08-18
x-ms-popreceipt: AwAAAAIAAAApAAAAINtMQ29bzAEBAAAA
x-ms-time-next-visible: Mon, 29 Aug 2011 17:17:51 GMT
Date: Mon, 29 Aug 2011 17:17:21 GMT
설명
Update Message
지정된 메시지가 큐에 없거나 지정된 팝 영수증이 메시지와 일치하지 않으면 작업이 실패합니다.
PopReceipt는 Get Messages
작업 또는 Update Message
작업으로 반환됩니다. PopReceipt는 다음 이벤트 중 하나가 발생할 때까지 유효한 상태로 유지됩니다.
메시지가 만료된 경우
또는 에서
Get Messages
Update Message
받은 마지막 팝 영수증을 사용하여 메시지가 삭제되었습니다.표시 안 함 시간이 경과되고
Get Messages
요청에 의해 메시지가 큐에서 제거된 경우. 표시 안 함 시간이 경과하면 메시지가 다시 표시됩니다. 다른Get Messages
요청에 의해 검색된 경우 반환된 팝 영수증을 사용하여 메시지를 삭제하거나 업데이트할 수 있습니다.메시지가 새로운 표시 제한 시간으로 업데이트된 경우. 메시지가 업데이트되면 새로운 PopReceipt가 반환됩니다.
작업을 사용하여 Update Message
큐 메시지의 투명도를 지속적으로 확장할 수 있습니다. 이 기능은 작업자 역할이 큐 메시지를 임대하려는 경우에 유용할 수 있습니다. 예를 들어 작업자 역할이 메시지 가져오기 를 호출하고 메시지를 처리하는 데 더 많은 시간이 필요하다는 것을 인식하는 경우 메시지가 처리될 때까지 메시지의 투명도를 지속적으로 확장할 수 있습니다. 처리 중에 작업자 역할이 실패하면 메시지가 다시 표시되고 다른 작업자 역할이 처리할 수 있습니다.