다음을 통해 공유


메시지 업데이트

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 MessagesUpdate Message받은 마지막 팝 영수증을 사용하여 메시지가 삭제되었습니다.

  • 표시 안 함 시간이 경과되고 Get Messages 요청에 의해 메시지가 큐에서 제거된 경우. 표시 안 함 시간이 경과하면 메시지가 다시 표시됩니다. 다른 Get Messages 요청에 의해 검색된 경우 반환된 팝 영수증을 사용하여 메시지를 삭제하거나 업데이트할 수 있습니다.

  • 메시지가 새로운 표시 제한 시간으로 업데이트된 경우. 메시지가 업데이트되면 새로운 PopReceipt가 반환됩니다.

작업을 사용하여 Update Message 큐 메시지의 투명도를 지속적으로 확장할 수 있습니다. 이 기능은 작업자 역할이 큐 메시지를 임대하려는 경우에 유용할 수 있습니다. 예를 들어 작업자 역할이 메시지 가져오기 를 호출하고 메시지를 처리하는 데 더 많은 시간이 필요하다는 것을 인식하는 경우 메시지가 처리될 때까지 메시지의 투명도를 지속적으로 확장할 수 있습니다. 처리 중에 작업자 역할이 실패하면 메시지가 다시 표시되고 다른 작업자 역할이 처리할 수 있습니다.

추가 정보

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