hızlı başlangıç: Python için Azure kuyruğu Depolama istemci kitaplığı v12

Python için v12 istemci kitaplığı Depolama Azure kuyruğu ile çalışmaya başlayın. Azure kuyruğu Depolama, daha sonra almak ve işlemek üzere çok sayıda ileti depolamaya yönelik bir hizmettir. Paketi yüklemek ve temel görevler için örnek kodu denemek üzere bu adımları izleyin.

Python için v12 istemci kitaplığı Depolama Azure kuyruğunu kullanın:

  • Bir kuyruk oluşturma
  • Bir kuyruğa ileti ekleme
  • Kuyruktaki iletilere göz atın
  • Kuyruktaki bir iletiyi güncelleştirme
  • Kuyruktan ileti alma
  • Kuyruktaki iletileri silme
  • Bir kuyruk silme

Ek kaynaklar:

Önkoşullar

Ayarlanıyor

bu bölümde, bir projeyi Python için v12 istemci kitaplığı Depolama Azure kuyruğu ile çalışacak şekilde hazırlama adımları gösterilmektedir.

Proje oluşturma

Adlı bir Python uygulaması oluşturun queues-quickstart-v12 .

  1. Konsol penceresinde (cmd, PowerShell veya Bash gibi), proje için yeni bir dizin oluşturun.

    mkdir queues-quickstart-v12
    
  2. Yeni oluşturulan dizine geçiş yapın queues-quickstart-v12 .

    cd queues-quickstart-v12
    

Paketi yükler

komutunu kullanarak Python paketi için Azure Blob Depolama istemci kitaplığı ' nı yükler pip install .

pip install azure-storage-queue

bu komut, Python paketi için Depolama istemci kitaplığı ve bağımlı olduğu tüm kitaplıkların Azure kuyruğunu yükleme. Bu durumda, yalnızca Python için Azure çekirdek kitaplığı vardır.

Uygulama çerçevesini ayarlama

  1. Kod Düzenleyicinizde yeni bir metin dosyası açın

  2. importDeyim Ekle

  3. Çok temel özel durum işleme dahil olmak üzere programın yapısını oluşturma

    Kod şu şekildedir:

    import os, uuid
    from azure.storage.queue import QueueServiceClient, QueueClient, QueueMessage
    
    try:
        print("Azure Queue storage v12 - Python quickstart sample")
        # Quick start code goes here
    except Exception as ex:
        print('Exception:')
        print(ex)
    
    
  4. Yeni dosyayı queues-quickstart-v12.py queues-quickstart-v12 dizine kaydedin.

Azure portalından kimlik bilgilerinizi kopyalama

örnek uygulama Azure Depolama istek yaptığında yetkilendirilmiş olması gerekir. Bir isteği yetkilendirmek için, depolama hesabı kimlik bilgilerinizi uygulamaya bağlantı dizesi olarak ekleyin. Depolama hesabı kimlik bilgilerinizi görüntülemek için aşağıdaki adımları izleyin:

  1. Azure Portal’ında oturum açın.

  2. Depolama hesabınızı bulun.

  3. Depolama hesabı menü bölmesinde, güvenlik + ağ altında, erişim anahtarları' nı seçin. Burada, her anahtar için hesap erişim anahtarlarını ve tüm bağlantı dizesini görüntüleyebilirsiniz.

    Erişim anahtarı ayarlarının Azure portal nerede olduğunu gösteren ekran görüntüsü

  4. Erişim tuşları bölmesinde, anahtarları göster' i seçin.

  5. KEY1 bölümünde bağlantı dizesi değerini bulun. Bağlantı dizesini kopyalamak için Panoya Kopyala simgesini seçin. Bir sonraki bölümde bağlantı dizesi değerini bir ortam değişkenine eklersiniz.

    Azure portalından bağlantı dizesinin kopyalanmasını gösteren ekran görüntüsü

Depolama bağlantı dizelerinizi yapılandırma

Bağlantı dizesini kopyaladıktan sonra, uygulamayı çalıştıran yerel makinede yeni bir ortam değişkenine yazın. Ortam değişkenini ayarlamak için bir konsol penceresi açın ve işletim sisteminizin yönergelerini izleyin. <yourconnectionstring>Gerçek bağlantı dizeniz ile değiştirin.

Windows

setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"

ortam değişkenini Windows ekledikten sonra, komut penceresinin yeni bir örneğini başlatmanız gerekir.

Linux

export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"

macOS

export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"

Programları yeniden Başlat

Ortam değişkenini ekledikten sonra, ortam değişkenini okumak için gereken tüm çalışan programları yeniden başlatın. Örneğin, devam etmeden önce geliştirme ortamınızı veya düzenleyiciyi yeniden başlatın.

Nesne modeli

Azure Kuyruk Depolama, çok sayıda iletiyi depolamaya yönelik bir hizmettir. Kuyruk iletisi boyutu 64 KB 'ye kadar olabilir. Bir kuyruk, depolama hesabının toplam kapasite sınırına kadar milyonlarca ileti içerebilir. Kuyruklar genellikle zaman uyumsuz olarak işlenecek iş biriktirme listesi oluşturmak için kullanılır. Queue Depolama üç tür kaynak sunar:

  • Depolama hesabı
  • Depolama hesabındaki bir kuyruk
  • Kuyruktaki iletiler

Aşağıdaki diyagramda bu kaynaklar arasındaki ilişki gösterilmektedir.

Kuyruk depolama mimarisi diyagramı

Şu kaynaklarla etkileşim kurmak için aşağıdaki Python sınıflarını kullanın:

  • QueueServiceClient:, QueueServiceClient Depolama hesabınızdaki tüm kuyrukları yönetmenizi sağlar.
  • QueueClient: QueueClient Sınıfı tek bir kuyruğu ve iletilerini yönetmenizi ve düzenlemenizi sağlar.
  • QueueMessage: QueueMessage Sınıfı, bir sıraya çağrılırken döndürülen ayrı nesneleri temsil eder receive_messages .

Kod örnekleri

bu örnek kod parçacıkları, Python için Azure kuyruğu Depolama istemci kitaplığı ile aşağıdaki eylemleri nasıl yapılacağını gösterir:

Bağlantı dizesini alma

Aşağıdaki kod, depolama hesabı için bağlantı dizesini alır. Bağlantı dizesi, depolama Bağlantı dizenizi yapılandırma bölümünde oluşturulan ortam değişkenini saklı tutulur.

Bu kodu bloğunun içine ekleyin try :

    # Retrieve the connection string for use with the application. The storage
    # connection string is stored in an environment variable on the machine
    # running the application called AZURE_STORAGE_CONNECTION_STRING. If the
    # environment variable is created after the application is launched in a
    # console or with Visual Studio, the shell or application needs to be
    # closed and reloaded to take the environment variable into account.
    connect_str = os.getenv('AZURE_STORAGE_CONNECTION_STRING')

Bir kuyruk oluşturma

Yeni sıra için bir ad belirleyin. Aşağıdaki kod, benzersiz olduğundan emin olmak için kuyruk adına bir UUID değeri ekler.

Önemli

Kuyruk adları yalnızca küçük harf, sayı ve kısa çizgi içerebilir ve bir harf veya sayı ile başlamalıdır. Her kısa çizginin önünde ve arkasında kısa çizgi dışında bir karakter bulunmalıdır. Ad ayrıca 3 ila 63 karakter uzunluğunda olmalıdır. Daha fazla bilgi için bkz. ad kuyrukları ve meta verileri.

Sınıfının bir örneğini oluşturun QueueClient . Ardından, create_queue depolama hesabınızda kuyruğu oluşturmak için yöntemini çağırın.

Bu kodu bloğunun sonuna ekleyin try :

    # Create a unique name for the queue
    queue_name = "quickstartqueues-" + str(uuid.uuid4())

    print("Creating queue: " + queue_name)

    # Instantiate a QueueClient which will be
    # used to create and manipulate the queue
    queue_client = QueueClient.from_connection_string(connect_str, queue_name)

    # Create the queue
    queue_client.create_queue()

Bir kuyruğa ileti ekleme

Aşağıdaki kod parçacığı, yöntemini çağırarak kuyruğa ileti ekler send_message . Ayrıca, QueueMessage üçüncü çağrıdan döndürülen öğesini de kaydeder send_message . , saved_message Programın ilerleyen kısımlarında ileti içeriğini güncelleştirmek için kullanılır.

Bu kodu bloğunun sonuna ekleyin try :

    print("\nAdding messages to the queue...")

    # Send several messages to the queue
    queue_client.send_message(u"First message")
    queue_client.send_message(u"Second message")
    saved_message = queue_client.send_message(u"Third message")

Kuyruktaki iletilere göz atın

Yöntemi çağırarak kuyruktaki iletilere göz atın peek_messages . Bu yöntem, sıranın önüne bir veya daha fazla ileti alır ancak iletinin görünürlüğünü değiştirmez.

Bu kodu bloğunun sonuna ekleyin try :

    print("\nPeek at the messages in the queue...")

    # Peek at messages in the queue
    peeked_messages = queue_client.peek_messages(max_messages=5)

    for peeked_message in peeked_messages:
        # Display the message
        print("Message: " + peeked_message.content)

Kuyruktaki bir iletiyi güncelleştirme

Yöntemini çağırarak bir iletinin içeriğini güncelleştirin update_message . Bu yöntem, bir iletinin görünürlük zaman aşımını ve içeriğini değiştirebilir. İleti içeriği, boyutu 64 KB 'a kadar olan bir UTF-8 kodlu dize olmalıdır. Yeni içerikle birlikte, kodda daha önce kaydedilen iletiden değer geçirin. saved_messageDeğerler güncelleştirilecek iletiyi belirler.

    print("\nUpdating the third message in the queue...")

    # Update a message using the message saved when calling send_message earlier
    queue_client.update_message(saved_message, pop_receipt=saved_message.pop_receipt, \
        content="Third message has been updated")

Kuyruktan ileti alma

Yöntemini çağırarak önceden eklenmiş iletileri indirin receive_messages .

Bu kodu bloğunun sonuna ekleyin try :

    print("\nReceiving messages from the queue...")

    # Get messages from the queue
    messages = queue_client.receive_messages(messages_per_page=5)

Kuyruktaki iletileri silme

İletileri alındıktan ve işlendikten sonra kuyruktan silin. Bu durumda, işleme yalnızca konsolda iletiyi görüntülüyor.

Uygulama, input iletileri işleyerek ve silmeden önce çağırarak kullanıcı girişi için duraklatılır. Azure Portal , kaynakların silinmeden önce doğru şekilde oluşturulduğunu doğrulayın. Açıkça silinmeyen tüm iletiler, daha sonra bu işlemleri işlemek için bir süre sonra sırada görünür hale gelir.

Bu kodu bloğunun sonuna ekleyin try :

    print("\nPress Enter key to 'process' messages and delete them from the queue...")
    input()

    for msg_batch in messages.by_page():
            for msg in msg_batch:
                # "Process" the message
                print(msg.content)
                # Let the service know we're finished with
                # the message and it can be safely deleted.
                queue_client.delete_message(msg)

Bir kuyruk silme

Aşağıdaki kod, yöntemi kullanılarak sıranın silindiği, uygulamanın oluşturduğu kaynakları temizler delete_queue .

Bu kodu bloğunun sonuna ekleyin try ve dosyayı kaydedin:

    print("\nPress Enter key to delete the queue...")
    input()

    # Clean up
    print("Deleting queue...")
    queue_client.delete_queue()

    print("Done")

Kodu çalıştırma

Bu uygulama, bir Azure kuyruğuna üç ileti oluşturur ve ekler. Kod kuyruktaki iletileri listeler, ardından kuyruğu silmeden önce bunları alır ve siler.

Konsol pencerenizde, dosyayı içeren dizine gidin queues-quickstart-v12.py ve python uygulamayı çalıştırmak için aşağıdaki komutu kullanın.

python queues-quickstart-v12.py

Uygulamanın çıktısı aşağıdaki örneğe benzer:

Azure Queue Storage client library v12 - Python quickstart sample
Creating queue: quickstartqueues-cac365be-7ce6-4065-bd65-3756ea052cb8

Adding messages to the queue...

Peek at the messages in the queue...
Message: First message
Message: Second message
Message: Third message

Updating the third message in the queue...

Receiving messages from the queue...

Press Enter key to 'process' messages and delete them from the queue...

First message
Second message
Third message has been updated

Press Enter key to delete the queue...

Deleting queue...
Done

Uygulama iletileri almadan önce durakladığında, Azure Portaldepolama hesabınızı kontrol edin. İletilerin kuyrukta olduğunu doğrulayın.

Enterİletileri almak ve silmek için tuşuna basın. İstendiğinde, Enter kuyruğu silmek ve tanıtımı sona almak için tuşa basın.

Sonraki adımlar

Bu hızlı başlangıçta, bir sıranın nasıl oluşturulacağını ve Python kodunu kullanarak iletiye nasıl ileti ekleneceğini öğrendiniz. Ardından iletileri göz atmayı, almayı ve silmeyi öğrendiniz. Son olarak, bir ileti sırasının nasıl silineceğini öğrendiniz.

Öğreticiler, örnekler, hızlı ve diğer belgeler için şu adresi ziyaret edin: