Sdílet prostřednictvím


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í jeho DequeueCount 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 ReceiveMessageje 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.