Jak používat Azure Queue Storage z PowerShellu
Azure Queue Storage je služba pro ukládání velkého počtu zpráv, ke kterým je možné přistupovat odkudkoli na světě prostřednictvím protokolu HTTP nebo HTTPS. Podrobné informace najdete v tématu Úvod do služby Azure Queue Storage. Tento článek s návodem se zabývá běžnými operacemi Queue Storage. Získáte informace pro:
- Vytvořit frontu
- Načtení fronty
- Přidání zpráv
- Načtení zpráv
- Odstranění zpráv
- Odstranění fronty
Tato příručka s postupy vyžaduje modul Azure PowerShellu verzeAz
12.0.0. Spuštěním vyhledejte Get-Module -ListAvailable Az
aktuálně nainstalovanou verzi. Pokud potřebujete upgrade, přečtěte si téma Instalace modulu Azure PowerShell.
Pro rovinu dat pro fronty neexistují žádné rutiny PowerShellu. Pokud chcete provádět operace roviny dat, jako je přidání zprávy, čtení zprávy a odstranění zprávy, musíte použít klientskou knihovnu úložiště .NET, protože je vystavená v PowerShellu. Vytvoříte objekt zprávy a pak můžete použít příkazy, jako AddMessage
je provádění operací s touto zprávou. V tomto článku se dozvíte, jak to udělat.
Poznámka:
Při práci s Azure doporučujeme používat modul Azure Az PowerShellu. Pokud chcete začít, přečtěte si téma Instalace Azure PowerShellu. Informace o tom, jak migrovat na modul Az PowerShell, najdete v tématu Migrace Azure PowerShellu z AzureRM na Az.
Přihlášení k Azure
Přihlaste se ke svému předplatnému Azure pomocí příkazu Connect-AzAccount
a postupujte podle pokynů na obrazovce. V případě potřeby můžete zadat předplatné přidáním TenantId
parametrů Subscription
a zahrnutím příslušných hodnot.
Connect-AzAccount
Načtení seznamu umístění
Pokud nevíte, které umístění chcete použít, můžete pomocí rutiny Get-AzLocation
zobrazit seznam dostupných umístění, jak je znázorněno v příkladu. Po zobrazení seznamu zvolte umístění a uložte ho location
do proměnné pro budoucí použití. Příklady v tomto cvičení používají eastus
umístění.
Get-AzLocation | Select-Object Location
$location = "eastus"
Vytvoření skupiny zdrojů
Skupina prostředků Azure je logický kontejner, ve kterém se nasazují a spravují prostředky Azure. Zvolte název skupiny prostředků a uložte ji do resourceGroup
proměnné pro budoucí použití. Tento příklad používá název howtoqueuesrg
.
Vytvořte skupinu prostředků voláním rutiny New-AzResourceGroup a zadáním názvu a umístění parametru ResourceGroupName
, jak je znázorněno.
$resourceGroup = "howtoqueuesrg"
New-AzResourceGroup -ResourceGroupName $resourceGroup -Location $location
Vytvoření účtu úložiště
Účet úložiště Azure je jedinečný pojmenovaný prostředek, který obsahuje všechny datové objekty jako objekty blob, soubory, fronty a tabulky.
Zvolte název účtu úložiště a uložte ho storageAccountName
do proměnné pro budoucí použití. Tento příklad používá název howtoqueuestorage
.
Dále pomocí rutiny New-AzStorageAccount vytvořte standardní účet úložiště pro obecné účely s místně redundantním úložištěm (LRS). Nakonec nastavte kontext účtu úložiště, který definuje účet úložiště, a uložte ho ctx
do proměnné. Odkazování na kontext s proměnnou umožňuje provádět operace s účtem úložiště, aniž byste museli opakovaně zadávat přihlašovací údaje.
$storageAccountName = "howtoqueuestorage"
$storageAccount = New-AzStorageAccount -ResourceGroupName $resourceGroup `
-Name $storageAccountName `
-Location $location `
-SkuName Standard_LRS
$ctx = $storageAccount.Context
Vytvořit frontu
Nejprve zvolte název účtu úložiště a uložte ho queueName
do proměnné. Tento příklad používá název howtoqueuestorage
. Dále vytvořte frontu pomocí rutiny New-AzStorageQueue a předáním queueName
proměnných ctx
Name
do parametrů a Context
parametrů, jak je znázorněno.
$queueName = "howtoqueue"
$queue = New-AzStorageQueue -Name $queueName -Context $ctx
Informace o zásadách vytváření názvů pro Azure Queue Storage najdete v tématu Pojmenování front a metadat.
Načtení fronty
Pomocí rutiny Get-AzStorageQueue můžete načíst konkrétní frontu nebo seznam všech front v rámci účtu úložiště. Následující příklady ukazují, jak pomocí rutiny načíst všechny fronty Get-AzStorageQueue
a jak určit frontu pomocí Name
parametru.
# Retrieve all queues and show their names
Get-AzStorageQueue -Context $ctx | Select-Object Name
# Retrieve a specific queue
$queue = Get-AzStorageQueue -Name $queueName -Context $ctx
# Show the properties of the queue
$queue
Přidání zpráv do fronty
Operace, které ovlivňují zprávy ve frontě, používají klientskou knihovnu úložiště .NET jako vystavenou v PowerShellu. Pokud chcete přidat zprávu do fronty, předejte zprávu jako řetězec QueueClient
metodě třídy SendMessage
.
Váš řetězec zprávy musí být ve formátu UTF-8.
Následující příklad ukazuje, jak přidat zprávy do fronty.
# Create a new message using a constructor of the CloudQueueMessage class
$queueMessage = "This is message 1"
# Add a new message to the queue
$queue.QueueClient.AddMessageAsync($queueMessage)
# Add two more messages to the queue
$queueMessages = @("This is message 2","This is message 3")
$queueMessages | foreach {$queue.QueueClient.AddMessageAsync($_)}
Pokud používáte Průzkumník služby Azure Storage, můžete se připojit ke svému účtu Azure a zobrazit fronty v účtu úložiště a přejít k podrobnostem do fronty a zobrazit zprávy ve frontě.
Načtení zpráv z fronty
I když není vždy zaručeno, zprávy se načtou z fronty v pořadí nejlepšího pokusu prvního v prvním.
V závislosti na vašem případu použití můžete z fronty načíst jednu nebo více zpráv. Můžete také upravit viditelnost zpráv, a to buď povolením, nebo zabráněním jiným procesům v přístupu ke stejné zprávě.
Zprávy z fronty můžete načíst dvěma způsoby:
- Receive: Načítání zprávy pomocí
Receive
vyřazení zprávy a zvýšení jehoDequeueCount
vlastnosti. Pokud se zpráva odstraní, znovu se vloží do fronty, aby se znovu zpracovala. - Náhled: Načtení zprávy pomocí
Peek
příkazu umožňuje zobrazit náhled zpráv z fronty.Peek
neodstraňuje zprávu nebo zvýší jejíDequeueCount
vlastnost.
Příjem zpráv
Při čtení zprávy z fronty pomocí metody, jako ReceiveMessage
je například , zpráva je dočasně vyřazena z fronty a dočasně neviditelná pro jiné procesy. Tento časový limit viditelnosti definuje, jak dlouho zpráva zůstává neviditelná. Výchozí časový limit viditelnosti je 30 sekund.
Pokud zpráva není zpracována před vypršením časového limitu viditelnosti, jeho DequeueCount
vlastnost se zvýší a znovu se vloží na konec fronty. Opětovné vložení stejné zprávy zajistí, že jiný proces může načíst stejnou zprávu a zkusit to znovu.
Následující příklad nastaví neviditelnou proměnnouTimeout na 10 sekund a pak přečte dvě zprávy z fronty.
# Set the amount of time you want to entry to be invisible after read from the queue
# If it is not deleted by the end of this time, it will show up in the queue again
$visibilityTimeout = [System.TimeSpan]::FromSeconds(10)
# Read the message from the queue, then show the contents of the message.
# Read the next message, too.
$queueMessage = $queue.QueueClient.ReceiveMessage($visibilityTimeout)
$queueMessage.Value
$queueMessage = $queue.QueueClient.ReceiveMessage($visibilityTimeout)
$queueMessage.Value
Pomocí metody a předáním celočíselné hodnoty můžete načíst více zpráv z fronty současně ReceiveMessages
a určit maximální počet zpráv, které se mají vrátit.
# Set the amount of time you want to entry to be invisible after read from the queue
# If it is not deleted by the end of this time, it will show up in the queue again
$visibilityTimeout = [System.TimeSpan]::FromSeconds(10)
# Read the messages from the queue, then show the contents of the messages.
$queueMessage = $queue.QueueClient.ReceiveMessages(5,$visibilityTimeout)
$queueMessage.Value
Náhled zpráv
V případě případů použití, které můžou zahrnovat sdílené fronty nebo zobrazení náhledu zpráv beze změny jejich viditelnosti, můžete tyto metody a PeekMessages
metody použítPeekMessage
. Stejně jako v předchozím ReceiveMessages
příkladu lze zobrazit více zpráv současně předáním celočíselné hodnoty, která určuje maximální počet zpráv.
Následující příklady používají k načtení zpráv z fronty jak metody PeekMessage
PeekMessages
, tak i metody.
# Read the message from the queue, then show the contents of the message.
$queueMessage = $queue.QueueClient.PeekMessage()
$queueMessage.Value
# Read the next four messages, then show the contents of the messages.
$queueMessage = $queue.QueueClient.PeekMessages(4)
$queueMessage.Value
Odstranění zpráv z fronty
Aby se zabránilo náhodnému odstranění, musí být před trvalým odstraněním zprávy zadány MessageId
vlastnosti i PopReceipt
vlastnosti. Kvůli tomuto požadavku je nejjednodušší odstranit zprávu pomocí dvoustupňového procesu.
Nejprve načtěte další zprávu ve frontě voláním ReceiveMessage
metod nebo ReceiveMessages
metod. Chcete-li dokončit odebrání zprávy z fronty, předejte hodnoty získané ze zprávy metodě DeleteMessage
.
Tento proces je znázorněn v následujících příkladech.
# Set the amount of time you want to entry to be invisible after read from the queue
# If it is not deleted by the end of this time, it will show up in the queue again
$visibilityTimeout = [System.TimeSpan]::FromSeconds(10)
# Receive one message from the queue, then delete the message.
$queueMessage = $queue.QueueClient.ReceiveMessage($visibilityTimeout)
$queue.QueueClient.DeleteMessage($queueMessage.Value.MessageId, $queueMessage.Value.PopReceipt)
# Receive four message from the queue, then delete the messages.
$queueMessage = $queue.QueueClient.ReceiveMessages(4,$visibilityTimeout)
$queueMessage.Value | foreach { $queue.QueueClient.DeleteMessage($_.MessageId, $_.PopReceipt)}
Odstranění fronty
Pokud chcete odstranit frontu a všechny zprávy obsažené v ní, zavolejte metodu QueueClient
Delete
třídy. Následující příklad ukazuje, jak odstranit konkrétní frontu použitou v tomto cvičení.
# Delete the queue
Remove-AzStorageQueue -Name $queueName -Context $ctx
Vyčištění prostředků
Odeberte skupinu prostředků a odstraňte prostředky a prostředky vytvořené v tomto cvičení. V tomto případě se odstraní také účet úložiště a samotná skupina prostředků.
Remove-AzResourceGroup -Name $resourceGroup
Další kroky
V tomto článku s postupy jste se dozvěděli o základní správě služby Queue Storage pomocí PowerShellu, včetně postupu:
- Vytvořit frontu
- Načtení fronty
- Přidání zpráv
- Čtení zpráv
- Odstranění zpráv
- Odstranění fronty
Rutiny úložiště Microsoft Azure PowerShellu
Microsoft Azure Storage Explorer
- Microsoft Azure Storage Explorer je bezplatná samostatná aplikace od Microsoftu, která umožňuje vizuálně pracovat s daty Azure Storage ve Windows, macOS a Linuxu.