İleti al
İşlem, Get Messages
kuyruğun önünden bir veya daha fazla ileti alır.
İstek
İstek Get Messages
aşağıdaki gibi oluşturulabilir. HTTPS kullanmanızı öneririz.
myaccount değerini depolama hesabınızın adıyla, yerine de kuyruğunuzun adını yazınmyqueue
:
Yöntem | İstek URI'si | HTTP sürümü |
---|---|---|
GET |
https://myaccount.queue.core.windows.net/myqueue/messages |
HTTP/1.1 |
Öykünülmüş depolama hizmeti isteği
Öykünülmüş depolama hizmetinde istekte bulunmak için öykünücü ana bilgisayar adını ve Azure Kuyruk Depolama bağlantı noktasını olarak 127.0.0.1:10001
ve ardından öykünülen depolama hesabı adını belirtin:
Yöntem | İstek URI'si | HTTP sürümü |
---|---|---|
GET |
http://127.0.0.1:10001/devstoreaccount1/myqueue/messages |
HTTP/1.1 |
Daha fazla bilgi için bkz. Yerel Azure Depolama geliştirmesi için Azurite öykünücüsü kullanma.
URI parametreleri
İstek URI'sinde aşağıdaki ek parametreler belirtilebilir.
Parametre | Açıklama |
---|---|
numofmessages |
İsteğe bağlı. En fazla 32 olmak üzere kuyruktan alınacak ileti sayısını belirten sıfır olmayan bir tamsayı değeri. Daha az ileti görünür durumdaysa, görünür iletiler döndürülür. Varsayılan olarak, bu işlemle kuyruktan tek bir ileti alınır. |
visibilitytimeout |
İsteğe bağlı. Sunucu süresine göre yeni görünürlük zaman aşımı değerini saniye olarak belirtir. Varsayılan değer 30 saniyedir. Belirtilen değer 1 saniyeden büyük veya buna eşit olmalıdır ve 2011-08-18'den önceki REST protokolü sürümlerinde 7 günden büyük veya 2 saatten uzun olamaz. İletinin görünürlük zaman aşımı süresi, son kullanma tarihinden sonraki bir değere ayarlanabilir. |
timeout |
İsteğe bağlı.
timeout parametresi saniye cinsinden ifade edilir. Daha fazla bilgi için bkz. Azure Kuyruk Depolama işlemleri için zaman aşımlarını ayarlama. |
İstek üst bilgileri
Aşağıdaki tabloda gerekli ve isteğe bağlı istek üst bilgileri açıklanmaktadır.
İstek üst bilgisi | Açıklama |
---|---|
Authorization |
Gereklidir. Yetkilendirme düzenini, hesap adını ve imzayı belirtir. Daha fazla bilgi için bkz. Azure Depolama'ya istekleri yetkilendirme. |
Date veya x-ms-date |
Gereklidir. İstek için Eşgüdümlü Evrensel Saat (UTC) biçimini belirtir. Daha fazla bilgi için bkz. Azure Depolama'ya istekleri yetkilendirme. |
x-ms-version |
İsteğe bağlı. Bu istek için kullanılacak işlemin sürümünü belirtir. Daha fazla bilgi için bkz. Azure Depolama hizmetleri için sürüm oluşturma. |
x-ms-client-request-id |
İsteğe bağlı. Günlüğe kaydetme yapılandırıldığında günlüklere kaydedilen 1 kibibayt (KiB) karakter sınırıyla istemci tarafından oluşturulan, opak bir değer sağlar. İstemci tarafı etkinlikleriyle sunucunun aldığı istekler arasında bağıntı sağlamak için bu üst bilgiyi kullanmanızı kesinlikle öneririz. Daha fazla bilgi için bkz. Azure Kuyruk Depolama'yı izleme. |
İstek gövdesi
Yok.
Yanıt
Yanıt bir HTTP durum kodu ve bir dizi yanıt üst bilgisi içerir.
Durum kodu
Başarılı bir işlem 200 (Tamam) durum kodunu döndürür.
Durum kodları hakkında daha fazla bilgi için bkz. Durum ve hata kodları.
Yanıt üst bilgileri
Bu işlemin yanıtı aşağıdaki üst bilgileri içerir. Yanıt ek standart HTTP üst bilgileri de içerebilir. Tüm standart üst bilgiler HTTP/1.1 protokol belirtimine uygundur.
Yanıt üst bilgisi | Description |
---|---|
x-ms-request-id |
Yapılan isteği benzersiz olarak tanımlar ve isteğin sorunlarını gidermek için kullanılabilir. Daha fazla bilgi için bkz . API işlemleriyle ilgili sorunları giderme. |
x-ms-version |
İsteği yürütmek için kullanılan Azure Kuyruk Depolama sürümünü gösterir. Bu üst bilgi, 2009-09-19 ve sonraki sürümlerde yapılan istekler için döndürülür. |
Date |
Hizmet tarafından oluşturulan ve yanıtın başlatıldığı saati gösteren UTC tarih/saat değeri. |
x-ms-client-request-id |
İsteklerde ve karşılık gelen yanıtlarda sorun gidermek için kullanılabilir. Bu üst bilginin değeri, istekte varsa ve değer 1.024'ten fazla görünür ASCII karakteri içermiyorsa üst bilginin değerine x-ms-client-request-id eşittir. İstekte x-ms-client-request-id üst bilgi yoksa yanıtta bulunmaz. |
Yanıt gövdesi
İşlemin yanıt XML'i Get Messages
aşağıdaki biçimde döndürülür.
MessageID
öğesi, kuyruktaki iletiyi tanımlayan bir GUID değeridir. Bu değer Azure Kuyruk Depolama tarafından iletiye atanır ve istemci için opaktır. işlemini kullanarak Get Messages
bir iletiyi aldıktan sonra kuyruktan silmek için öğesinin değeriyle PopReceipt
birlikte değerini kullanabilirsiniz. değeri PopReceipt
de istemci için opaktır. Tek amacı, İletiyi Sil işlemiyle bir iletinin silinebilmesini sağlamaktır.
InsertionTime
, ExpirationTime
ve TimeNextVisible
öğeleri UTC değerleri olarak temsil edilir ve RFC 1123'te açıklandığı gibi biçimlendirilir.
öğesi, DequeueCount
ileti ilk kez sıralandığında 1 değerine sahiptir. Bu değer, ileti daha sonra her sorgudan kaldırıldığında artırılır.
Not
DequeueCount
öğesi yanıt gövdesinde döndürülür, ancak kuyruk Azure Kuyruk Depolama sürüm 2009-09-19 kullanılarak oluşturulduysa döndürülür.
<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>
Örnek yanıt
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>
Yetkilendirme
Bu işlem hesap sahibi ve bu işlemi gerçekleştirme izni olan paylaşılan erişim imzasına sahip herkes tarafından gerçekleştirilebilir.
Açıklamalar
İleti içeriği, İletiYi Koy işlemi için kullanılan biçimde alınır.
Kuyruktan bir ileti alındığında, yanıt iletiyi ve iletiyi silmek için gereken bir pop alındı değeri içerir. İleti kuyruktan otomatik olarak silinmez, ancak alındıktan sonra parametresi tarafından belirtilen zaman aralığı için diğer istemciler tarafından visibilitytimeout
görünmez.
Birden çok ileti alınırsa, her iletinin ilişkili bir pop alındı bilgisi vardır. Aynı anda alınabilecek ileti sayısı üst sınırı 32'dir.
İletiyi alan istemcinin, işlendikten sonra ve parametresinin değerine visibilitytimeout
göre hesaplanan yanıtın öğesi tarafından TimeNextVisible
belirtilen süreden önce iletiyi silmesi beklenir. değerinin değerini visibilitytimeout
belirlemek TimeNextVisible
için iletinin alınıldığı zamana eklenir.
Saat dengesizliği nedeniyle, belirli visibilitytimeout
bir ile alınan bir ileti, belirtilen zaman aşımı tamamlanmadan önce yeniden görüntülenebilir. İstemcinin, bir iletinin her bir sırayı kaldırma işlemi için benzersiz olan pop alındı bilgisi temelinde farklı bir istemci tarafından zaten sıralanmış olduğunu çıkarabileceğini unutmayın. İstemcinin pop alındı bilgisi artık bir iletiyi silmek veya güncelleştirmek için çalışmıyorsa ve istemci 404 (Bulunamadı) hatası alıyorsa, ileti başka bir istemci tarafından sorgudan kaldırılmıştır.
Genellikle, bir tüketici aracılığıyla Get Messages
bir ileti aldığında, bu ileti görünürlük zaman aşımı aralığı sona erene kadar silinmek üzere ayrılır. Ancak bu davranış garanti değildir.
Görünürlük zaman aşımı aralığının süresi dolduktan sonra ileti yeniden diğer tüketicilere görünür hale gelir. İleti daha sonra başka bir tüketici tarafından alınmaz ve silinmezse, özgün tüketici özgün pop makbuzunu kullanarak iletiyi silebilir.
bir ileti ilk kez alındığında, özelliği DequeueCount
1 olarak ayarlanır. Silinmezse ve daha sonra yeniden alınırsa, DequeueCount
özellik artırılır. İstemci, bir iletinin kaç kez alındığını belirlemek için bu değeri kullanabilir.
visibilitytimeout veya numofmessages parametresi aralık dışındaysa, hizmet aşağıdaki örnekte gösterildiği gibi ek hata bilgileriyle birlikte 400 (Hatalı İstek) durum kodunu döndürür.
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>
Ayrıca bkz.
Azure Kuyruk Depolama hata kodları
Azure Depolama'ya yönelik istekleri yetkilendirme
Durum ve hata kodları