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ě přes PROTOKOL HTTP nebo HTTPS. Podrobné informace najdete v tématu Úvod do služby Azure Queue Storage. Tento článek s postupy se zabývá běžnými operacemi služby Queue Storage. Získáte informace o těchto tématech:

  • Vytvoření fronty
  • Načtení fronty
  • Přidání zprávy
  • Přečtení zprávy
  • Odstranění zprávy
  • Odstranění fronty

Tento návod vyžaduje modul Azure PowerShell (Az) verze 0.7 nebo novější. Spuštěním příkazu Get-Module -ListAvailable Az vyhledejte 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, přečtení zprávy a odstranění zprávy, musíte použít klientskou knihovnu úložiště .NET, která 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

K interakci s Azure doporučujeme použít modul Azure Az PowerShell. Začněte tím, že si projdete 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.

Connect-AzAccount

Načtení seznamu umístění

Pokud nevíte, jaké umístění máte použít, můžete vypsat všechna dostupná umístění. Po zobrazení seznamu vyhledejte umístění, které chcete použít. V tomto cvičení se použije eastus. Uložte ho do proměnné location pro budoucí použití.

Get-AzLocation | Select-Object Location
$location = "eastus"

Vytvoření skupiny prostředků

Vytvořte skupinu prostředků pomocí příkazu New-AzResourceGroup .

Skupina prostředků Azure je logický kontejner, ve kterém se nasazují a spravují prostředky Azure. Uložte název skupiny prostředků do proměnné pro budoucí použití. V tomto příkladu se vytvoří skupina prostředků s názvem howtoqueuesrg v oblasti eastus.

$resourceGroup = "howtoqueuesrg"
New-AzResourceGroup -ResourceGroupName $resourceGroup -Location $location

Vytvoření účtu úložiště

Vytvořte standardní účet úložiště pro obecné účely s místně redundantním úložištěm (LRS) pomocí rutiny New-AzStorageAccount. Získejte kontext účtu úložiště, který definuje účet úložiště, který se má použít. Když používáte účet úložiště, namísto opakovaného zadávání přihlašovacích údajů odkazujete na jeho kontext.

$storageAccountName = "howtoqueuestorage"
$storageAccount = New-AzStorageAccount -ResourceGroupName $resourceGroup `
  -Name $storageAccountName `
  -Location $location `
  -SkuName Standard_LRS

$ctx = $storageAccount.Context

Vytvoření fronty

Následující příklad nejprve naváže připojení ke službě Azure Storage pomocí kontextu účtu úložiště, který zahrnuje název účtu úložiště a jeho přístupový klíč. Dále zavolá rutinu New-AzStorageQueue a vytvoří frontu s názvem howtoqueue.

$queueName = "howtoqueue"
$queue = New-AzStorageQueue -Name $queueName -Context $ctx

Informace o konvencích vytváření názvů pro Azure Queue Storage najdete v tématu Vytváření názvů front a metadat.

Načtení fronty

Můžete dotazovat a načíst konkrétní frontu nebo seznam všech front v účtu úložiště. Následující příklady ukazují, jak načíst všechny fronty v účtu úložiště a konkrétní frontu. Oba příkazy používají rutinu Get-AzStorageQueue .

# Retrieve a specific queue
$queue = Get-AzStorageQueue -Name $queueName -Context $ctx
# Show the properties of the queue
$queue

# Retrieve all queues and show their names
Get-AzStorageQueue -Context $ctx | Select-Object Name

Přidání zprávy do fronty

Operace, které mají vliv na skutečné zprávy ve frontě, používají klientskou knihovnu úložiště .NET jako vystavenou v PowerShellu. Pokud chcete přidat zprávu do fronty, vytvořte novou instanci objektu zprávy, Microsoft.Azure.Storage.Queue.CloudQueueMessage třídy. Dále zavolejte metodu AddMessage . Objekt CloudQueueMessage lze vytvořit buď z řetězce (ve formátu UTF-8), nebo z pole bajtů.

Následující příklad ukazuje, jak přidat zprávu do fronty.

# Create a new message using a constructor of the CloudQueueMessage class
$queueMessage = [Microsoft.Azure.Storage.Queue.CloudQueueMessage]::new("This is message 1")

# Add a new message to the queue
$queue.CloudQueue.AddMessageAsync($queueMessage)

# Add two more messages to the queue
$queueMessage = [Microsoft.Azure.Storage.Queue.CloudQueueMessage]::new("This is message 2")
$queue.CloudQueue.AddMessageAsync($queueMessage)

$queueMessage = [Microsoft.Azure.Storage.Queue.CloudQueueMessage]::new("This is message 3")
$queue.CloudQueue.AddMessageAsync($queueMessage)

Pokud používáte Průzkumník služby Azure Storage, můžete se připojit ke svému účtu Azure, zobrazit fronty v účtu úložiště a přejít k podrobnostem fronty a zobrazit zprávy ve frontě.

Přečtěte si zprávu z fronty a pak ji odstraňte.

Zprávy se čtou v pořadí first-in-first-out. To není zaručeno. Když přečtete zprávu z fronty, stane se neviditelnou pro všechny ostatní procesy, které se na frontu dívají. Tím se zajistí, že pokud váš kód nezpracuje zprávu kvůli selhání hardwaru nebo softwaru, může jiná instance vašeho kódu získat stejnou zprávu a zkusit to znovu.

Tento časový limit neviditelnosti definuje, jak dlouho zůstane zpráva neviditelná, než bude znovu k dispozici pro zpracování. Výchozí hodnota je 30 sekund.

Váš kód přečte zprávu z fronty ve dvou krocích. Při volání Microsoft.Azure.Storage.Queue.CloudQueue.GetMessage metody se ve frontě zobrazí další zpráva. Zpráva vrácená z GetMessage se stane neviditelnou pro jakýkoli jiný kód, který čte zprávy z této fronty. Chcete-li dokončit odebrání zprávy z fronty, zavoláte metodu Microsoft.Azure.Storage.Queue.CloudQueue.DeleteMessage .

V následujícím příkladu si přečtete tři zprávy fronty a pak počkáte 10 sekund (časový limit neviditelnosti). Pak tyto tři zprávy znovu přečtete a po přečtení je odstraníte voláním DeleteMessage. Pokud se po odstranění zpráv pokusíte frontu přečíst, $queueMessage vrátí se jako $null.

# 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
$invisibleTimeout = [System.TimeSpan]::FromSeconds(10)

# Read the message from the queue, then show the contents of the message. Read the other two messages, too.
$queueMessage = $queue.CloudQueue.GetMessageAsync($invisibleTimeout,$null,$null)
$queueMessage.Result
$queueMessage = $queue.CloudQueue.GetMessageAsync($invisibleTimeout,$null,$null)
$queueMessage.Result
$queueMessage = $queue.CloudQueue.GetMessageAsync($invisibleTimeout,$null,$null)
$queueMessage.Result

# After 10 seconds, these messages reappear on the queue.
# Read them again, but delete each one after reading it.
# Delete the message.
$queueMessage = $queue.CloudQueue.GetMessageAsync($invisibleTimeout,$null,$null)
$queueMessage.Result
$queue.CloudQueue.DeleteMessageAsync($queueMessage.Result.Id,$queueMessage.Result.popReceipt)
$queueMessage = $queue.CloudQueue.GetMessageAsync($invisibleTimeout,$null,$null)
$queueMessage.Result
$queue.CloudQueue.DeleteMessageAsync($queueMessage.Result.Id,$queueMessage.Result.popReceipt)
$queueMessage = $queue.CloudQueue.GetMessageAsync($invisibleTimeout,$null,$null)
$queueMessage.Result
$queue.CloudQueue.DeleteMessageAsync($queueMessage.Result.Id,$queueMessage.Result.popReceipt)

Odstranění fronty

Pokud chcete odstranit frontu a všechny zprávy v ní obsažené, zavolejte rutinu Remove-AzStorageQueue . Následující příklad ukazuje, jak odstranit konkrétní frontu použitou v tomto cvičení pomocí rutiny Remove-AzStorageQueue .

# Delete the queue
Remove-AzStorageQueue -Name $queueName -Context $ctx

Vyčištění prostředků

Pokud chcete odebrat všechny prostředky, které jste vytvořili v tomto cvičení, odeberte skupinu prostředků. Tím se odstraní také všechny prostředky, které skupina obsahuje. V tomto případě odebere vytvořený účet úložiště a samotnou skupinu 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ě následujících:

  • Vytvoření fronty
  • Načtení fronty
  • Přidání zprávy
  • Přečtení další zprávy
  • Odstranění zprávy
  • Odstranění fronty

rutiny úložiště Microsoft Azure PowerShell

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.