Rychlý start: Azure Queue Storage klientskou knihovnu v12 pro Python
Začínáme s klientskou knihovnou Azure Queue Storage v12 pro Python. Azure Queue Storage je služba pro ukládání velkého počtu zpráv pro pozdější načtení a zpracování. Postupujte podle těchto kroků a nainstalujte balíček a vyzkoušejte si příklad kódu pro základní úlohy.
Pomocí klientské knihovny Azure Queue Storage v12 pro Python můžete:
- Vytvoření fronty
- Přidání zpráv do fronty
- Prohlížení zpráv ve frontě
- Aktualizace zprávy ve frontě
- Příjem zpráv z fronty
- Odstranění zpráv z fronty
- Odstranění fronty
Další prostředky:
Požadavky
- Předplatné Azure – vytvořte si ho zdarma.
- Azure Storage účtu – vytvoření účtu úložiště
- Python pro váš operační systém – 2.7 nebo 3.6+
Nastavení
Tato část vás provede přípravou projektu pro práci s klientskou knihovnou Azure Queue Storage v12 pro Python.
Vytvoření projektu
Vytvořte aplikaci v Pythonu s názvem queues-quickstart-v12 .
V okně konzoly (například cmd, PowerShell nebo Bash) vytvořte nový adresář pro projekt.
mkdir queues-quickstart-v12Přepněte do nově vytvořeného
queues-quickstart-v12adresáře.cd queues-quickstart-v12
Instalace balíčku
Nainstalujte balíček Storage azure blob pro balíček Python pomocí pip install příkazu .
pip install azure-storage-queue
Tento příkaz nainstaluje balíček Azure Queue Storage klientské knihovny pro Python a všechny knihovny, na kterých závisí. V tomto případě je to pouze základní knihovna Azure pro Python.
Nastavení architektury aplikace
Otevření nového textového souboru v editoru kódu
Přidání
importpříkazůVytvoření struktury pro program, včetně velmi základního zpracování výjimek
Tady je kód:
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)Uložte nový soubor jako
queues-quickstart-v12.pydoqueues-quickstart-v12adresáře .
Zkopírování přihlašovacích údajů z webu Azure Portal
Když ukázková aplikace vytvoří požadavek na Azure Storage, musí být autorizována. Pokud chcete požadavek autorizovat, přidejte do aplikace přihlašovací údaje svého účtu úložiště jako připojovací řetězec. Pokud chcete zobrazit přihlašovací údaje účtu úložiště, postupujte takto:
Přihlaste se k webu Azure Portal.
Vyhledejte svůj účet úložiště.
V podokně nabídek účtu úložiště v části Zabezpečení a sítě vyberte Přístupové klíče. Tady můžete zobrazit přístupové klíče účtu a úplný připojovací řetězec pro každý klíč.

V podokně Přístupové klíče vyberte Zobrazit klíče.
V části key1 vyhledejte hodnotu Připojovací řetězec. Vyberte ikonu Zkopírovat do schránky a zkopírujte připojovací řetězec. Hodnotu připojovacího řetězce přidáte do proměnné prostředí v další části.

Konfigurace připojovacího řetězce úložiště
Po zkopírování připojovacího řetězce ho zapište do nové proměnné prostředí na místním počítači, na který běží aplikace. Proměnnou prostředí nastavíte tak, že otevřete okno konzoly a budete postupovat podle pokynů pro váš operační systém. Nahraďte <yourconnectionstring> skutečným připojovacím řetězcem.
Windows
setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"
Po přidání proměnné prostředí v Windows, je nutné spustit novou instanci příkazového okna.
Linux
export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"
macOS
export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"
Restartování programů
Po přidání proměnné prostředí restartujte všechny spuštěné programy, které budou muset proměnnou prostředí přečíst. Před pokračováním například restartujte vývojové prostředí nebo editor.
Objektový model
Azure Queue Storage je služba pro ukládání velkých objemů zpráv. Zpráva fronty může mít velikost až 64 kB. Fronta může obsahovat miliony zpráv až do celkového limitu kapacity účtu úložiště. Fronty se běžně používají k vytvoření backlogu práce pro asynchronní zpracování. Queue Storage nabízí tři typy prostředků:
- Účet úložiště
- Fronta v účtu úložiště
- Zprávy ve frontě
Na následujícím diagramu jsou vztahy těchto prostředků.

K interakci s těmito prostředky použijte následující třídy Pythonu:
QueueServiceClient:QueueServiceClientUmožňuje spravovat všechny fronty ve vašem účtu úložiště.QueueClient: Třída umožňuje spravovat jednotlivé fronty a její zprávy a manipulovatQueueClients nimi.QueueMessage: TřídaQueueMessagepředstavuje jednotlivé objekty vrácené při voláníreceive_messagesve frontě.
Příklady kódu
Tyto příklady fragmentů kódu ukazují, jak pomocí klientské knihovny Azure Queue Storage Pythonu provádět následující akce:
- Získání připojovacího řetězce
- Vytvoření fronty
- Přidání zpráv do fronty
- Prohlížení zpráv ve frontě
- Aktualizace zprávy ve frontě
- Příjem zpráv z fronty
- Odstranění zpráv z fronty
- Odstranění fronty
Získání připojovacího řetězce
Následující kód načte připojovací řetězec pro účet úložiště. Připojovací řetězec se uloží do proměnné prostředí vytvořené v části Konfigurace připojovacího řetězce úložiště.
Do bloku přidejte try tento kód:
# 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')
Vytvoření fronty
Rozhodněte o názvu nové fronty. Následující kód připojí hodnotu UUID k názvu fronty, aby se zajistilo, že bude jedinečný.
Důležité
Názvy front mohou obsahovat pouze malá písmena, číslice a spojovníky a musí začínat písmenem nebo číslicí. Před i za každým spojovníkem musí být jiný znak než spojovník. Název musí mít také 3 až 63 znaků. Další informace najdete v tématu Pojmenování front a metadat.
Vytvořte instanci QueueClient třídy . Potom zavolejte create_queue metodu a vytvořte frontu ve vašem účtu úložiště.
Na konec bloku přidejte try tento kód:
# 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()
Přidání zpráv do fronty
Následující fragment kódu přidá zprávy do fronty voláním send_message metody . Uloží také objekt QueueMessage vrácený z třetího send_message volání. Se saved_message používá k aktualizaci obsahu zprávy později v programu.
Na konec bloku přidejte try tento kód:
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")
Prohlížení zpráv ve frontě
Prohlédněte si zprávy ve frontě voláním peek_messages metody . Tato metoda načte jednu nebo více zpráv z fronty, ale nezmění viditelnost zprávy.
Na konec bloku přidejte try tento kód:
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)
Aktualizace zprávy ve frontě
Aktualizujte obsah zprávy voláním update_message metody . Tato metoda může změnit časový limit viditelnosti a obsah zprávy. Obsahem zprávy musí být řetězec s kódováním UTF-8, který má velikost až 64 kB. Spolu s novým obsahem předejte hodnoty ze zprávy, která byla dříve uložena v kódu. Hodnoty saved_message identifikují, která zpráva se má aktualizovat.
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")
Příjem zpráv z fronty
Stáhněte dříve přidané zprávy voláním receive_messages metody .
Na konec bloku přidejte try tento kód:
print("\nReceiving messages from the queue...")
# Get messages from the queue
messages = queue_client.receive_messages(messages_per_page=5)
Odstranění zpráv z fronty
Po přijetí a zpracování zpráv z fronty je odstraňte. V tomto případě se zpracovává jenom zpráva v konzole nástroje.
Aplikace pozastaví vstup uživatele voláním input před jeho zpracováním a odstraněním zpráv. Před odstraněním ověřte ve svém Azure Portal , že se prostředky vytvořily správně. Všechny zprávy, které se explicitně neodstraní, se později stanou viditelnými ve frontě, aby se mohly zpracovat další šance na jejich zpracování.
Přidejte tento kód na konec try bloku:
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)
Odstranění fronty
Následující kód vyčistí prostředky, které aplikace vytvořila, odstraněním fronty pomocí delete_queue metody.
Přidejte tento kód na konec try bloku a uložte soubor:
print("\nPress Enter key to delete the queue...")
input()
# Clean up
print("Deleting queue...")
queue_client.delete_queue()
print("Done")
Spuštění kódu
Tato aplikace vytvoří a přidá tři zprávy do fronty Azure. Kód vypíše zprávy ve frontě a pak je načte a odstraní před tím, než se nakonec odstraní fronta.
V okně konzoly přejděte do adresáře obsahujícího queues-quickstart-v12.py soubor a pak použijte následující python příkaz ke spuštění aplikace.
python queues-quickstart-v12.py
Výstup aplikace je podobný následujícímu příkladu:
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
Když se aplikace před přijetím zpráv pozastaví, ověřte si účet úložiště v Azure Portal. Ověřte, zda jsou zprávy ve frontě.
Pokud Enter chcete zprávy přijmout a odstranit, stiskněte klávesu. Po zobrazení výzvy znovu stiskněte klávesu Enter a odstraňte frontu a dokončete ukázku.
Další kroky
V tomto rychlém startu jste zjistili, jak vytvořit frontu a přidat do ní zprávy pomocí kódu Pythonu. Pak jste se naučili prohlížet, načítat a odstraňovat zprávy. Nakonec jste zjistili, jak odstranit frontu zpráv.
Kurzy, ukázky, rychlé starty a další dokumentace najdete na webu:
- další informace najdete v tématu knihovny Azure Storage pro Python.
- další ukázkové aplikace pro azure Queue Storage najdete v tématu azure Queue Storage client library v12 for Python-samples.