Hızlı Başlangıç: Python için azure Depolama kitaplığı v12

Kullanmaya başlayın Python için azure kuyruk Depolama v12 istemci kitaplığıyla birlikte kullanın. Azure Kuyruk Depolama, daha sonra alma ve işleme için çok sayıda ileti depolamaya uygun bir hizmettir. Paketi yüklemek ve temel görevler için örnek kodu denemek için bu adımları izleyin.

Python için Azure Kuyruk Depolama v12 istemci kitaplığını kullanarak şunları yapmak için:

  • Bir kuyruk oluşturma
  • Kuyruğa ileti ekleme
  • Kuyrukta iletilere göz atma
  • Kuyrukta iletiyi güncelleştirme
  • Kuyruktan ileti alma
  • Kuyruktan iletileri silme
  • Bir kuyruk silme

Ek kaynaklar:

Önkoşullar

Ayarlama

Bu bölümde, Python için istemci kitaplığı v12'de Azure Kuyruk Depolama çalışmak için proje hazırlamada size yol göstermektedir.

Proje oluşturma

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

  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 queues-quickstart-v12 geçiş.

    cd queues-quickstart-v12
    

Paketi yükleme

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

pip install azure-storage-queue

Bu komut, Python paketi Depolama ve bağlı olduğu tüm kitaplıklar için Azure Queue Depolama istemci kitaplığını yüklür. Bu durumda bu yalnızca Python için Azure çekirdek kitaplığıdır.

Uygulama çerçevesini ayarlama

  1. Kod düzenleyicide yeni bir metin dosyası açma

  2. Deyim import ekleme

  3. Çok temel özel durum işleme dahil olmak üzere program için yapıyı 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ı dizinine queues-quickstart-v12.py olarak queues-quickstart-v12 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 en fazla 64 KB olabilir. Kuyruk, depolama hesabının toplam kapasite sınırına kadar milyonlarca ileti içerebilir. Kuyruklar genellikle zaman uyumsuz olarak iş için bir iş biriktirme listesi oluşturmak için kullanılır. Kuyruk Depolama üç tür kaynak sunar:

  • Depolama hesabı
  • Depolama hesabında bir kuyruk
  • Kuyruk içindeki iletiler

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

Kuyruk depolama mimarisi diyagramı

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

  • QueueServiceClient: QueueServiceClient depolama hesabınıza tüm kuyrukları yönetmenize olanak sağlar.
  • QueueClient: QueueClient sınıfı, tek bir kuyruğu ve onun iletilerini yönetmenize ve işlemenizi sağlar.
  • QueueMessage: QueueMessage sınıfı, bir kuyrukta çağrılırken döndürülen tek receive_messages tek nesneleri temsil eder.

Kod örnekleri

Bu örnek kod parçacıkları, Python için Azure Kuyruk hizmeti istemci kitaplığı ile Depolama eylemleri nasıl gerçekleştirebilirsiniz:

Bağlantı dizesini alma

Aşağıdaki kod depolama hesabının 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 depolar.

Bu kodu bloğun içine try ekleyin:

    # 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 kuyruk için bir ad verin. 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, rakam ve kısa çizgi içerebilir ve bir harf veya sayı ile başlayılmalıdır. Her kısa çizginin önünde ve arkasında kısa çizgi dışında bir karakter bulunmalıdır. Ad da 3 ile 63 karakter uzunluğunda olmalıdır. Daha fazla bilgi için bkz. Kuyrukları ve meta verileri adlandırma.

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

Bu kodu bloğun sonuna try ekleyin:

    # 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()

Kuyruğa ileti ekleme

Aşağıdaki kod parçacığı yöntemini çağırarak kuyruğa ileti send_message ekler. Ayrıca üçüncü QueueMessage çağrıdan döndürüleni send_message de kaydeder. saved_message, programda daha sonra ileti içeriğini güncelleştirmek için kullanılır.

Bu kodu bloğun sonuna try ekleyin:

    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")

Kuyrukta iletilere göz atma

yöntemini çağırarak kuyrukta iletilerine göz peek_messages atın. Bu yöntem kuyruğun önünden bir veya daha fazla ileti alır ancak iletinin görünürlüğünü değiştirmez.

Bu kodu bloğun sonuna try ekleyin:

    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)

Kuyrukta iletiyi güncelleştirme

yöntemini çağırarak iletinin içeriğini update_message güncelleştirin. Bu yöntem bir iletinin görünürlük zaman aşımını ve içeriğini değiştirebilir. İleti içeriğinin boyutu 64 KB'a kadar olan UTF-8 ile kodlanmış bir dize olmalıdır. Yeni içerikle birlikte, daha önce koda kaydedilmiş olan iletiden değerleri de iletiye iletin. Değerler, saved_message güncelleştirilen iletiyi gösterir.

    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 daha önce eklenen iletileri receive_messages indirin.

Bu kodu bloğun sonuna try ekleyin:

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

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

Kuyruktan iletileri silme

İletiler 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: