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 se dá dostat odkudkoli na světě přes HTTP nebo HTTPS. Podrobné informace najdete v tématu Úvod do Azure Queue Storage. tento článek s návody popisuje běžné operace Queue Storage. Získáte informace o těchto tématech:

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

tato příručka vyžaduje modul Azure PowerShell ( Az ) v 0,7 nebo novějším. Spusťte Get-Module -ListAvailable Az a najděte aktuálně nainstalovanou verzi. Pokud potřebujete upgrade, přečtěte si téma Instalace modulu Azure PowerShell.

Pro tuto rovinu dat pro fronty neexistují žádné rutiny prostředí PowerShell. Chcete-li provádět operace roviny dat, například přidat zprávu, přečíst zprávu a odstranit zprávu, je nutné použít klientskou knihovnu úložiště .NET, protože je vystavena v prostředí PowerShell. Vytvoříte objekt zprávy a potom můžete použít příkazy, jako je například AddMessage k provádění operací s touto zprávou. V tomto článku se dozvíte, jak to provést.

Poznámka

Tento článek používá modul Azure Az PowerShell, což je doporučený modul PowerShellu pro interakci s Azure. Pokud chcete začít s modulem Az PowerShell, projděte si téma věnované instalaci 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číst seznam 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. Toto cvičení bude používat 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í 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 napřed vytvoří připojení k Azure Storage pomocí kontextu účtu úložiště, který zahrnuje název účtu úložiště a jeho přístupový klíč. V dalším kroku zavolá rutinu New-AzStorageQueue , která vytvoří frontu s názvem howtoqueue .

$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

Můžete zadávat dotazy a načítat 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řidat zprávu do fronty

Operace, které mají vliv na skutečné zprávy ve frontě, používají klientskou knihovnu pro úložiště .NET jako zveřejněnou v prostředí PowerShell. Chcete-li přidat zprávu do fronty, vytvořte novou instanci objektu zprávy a Microsoft.Azure.Storage.Queue.CloudQueueMessage třídy. Dále zavolejte AddMessage metodu. A CloudQueueMessage lze vytvořit buď z řetězce (ve formátu UTF-8), nebo 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 k účtu Azure a zobrazit fronty v účtu úložiště a přejít k podrobnostem o frontě a zobrazit tak zprávy ve frontě.

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

Zprávy jsou čteny nejlépe při prvním prvním vyzkoušení. To není zaručeno. Když si přečtete zprávu z fronty, bude se neviditelná pro všechny ostatní procesy, které prohlíží ve frontě. Tím je zajištěno, že pokud váš kód nedokáže zpracovat zprávu z důvodu selhání hardwaru nebo softwaru, může jiná instance kódu získat stejnou zprávu a opakovat akci.

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

Kód přečte zprávu z fronty ve dvou krocích. Když zavoláte Microsoft.Azure.Storage.Queue.CloudQueue.GetMessage metodu, dostanete další zprávu ve frontě. Zpráva vrácená z GetMessage se bude neviditelná pro jakýkoliv jiný kód, který čte zprávy z této fronty. Chcete-li dokončit odebrání zprávy z fronty, zavolejte Microsoft.Azure.Storage.Queue.CloudQueue.DeleteMessage metodu.

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 znovu přečtete tři zprávy a po jejich přečtení je zavoláte DeleteMessage . Pokud se pokusíte zobrazit frontu po odstranění zpráv, $queueMessage bude vrácena 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, které jsou v ní obsažené, zavolejte Remove-AzStorageQueue rutinu. Následující příklad ukazuje, jak odstranit specifickou frontu použitou v tomto cvičení pomocí Remove-AzStorageQueue rutiny.

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

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

Pokud chcete odebrat všechny prostředky, které jste v tomto cvičení vytvořili, odeberte skupinu prostředků. Tím se odstraní také všechny prostředky, které skupina obsahuje. V takovém případě se odebere účet úložiště, který je vytvořený, a skupinu prostředků.

Remove-AzResourceGroup -Name $resourceGroup

Další kroky

v tomto článku se dozvíte o základní správě Queue Storage pomocí prostředí PowerShell, včetně postupu:

  • Vytvoření fronty
  • Načtení fronty
  • Přidat zprávu
  • Přečtěte si další zprávu.
  • Odstranění zprávy
  • Odstranění fronty

Microsoft Azure PowerShell rutiny úložiště

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.