Så här använder du Azure Queue Storage från PowerShell

Azure Queue Storage är en tjänst för att lagra ett stort antal meddelanden som kan nås från var som helst i världen via HTTP eller HTTPS. Detaljerad information finns i Introduktion till Azure Queue Storage. I den här artikeln beskrivs vanliga köhanteringsåtgärder Storage köhantering. Lär dig att:

  • Skapa en kö
  • Hämta en kö
  • Lägg till ett meddelande
  • Läsa ett meddelande
  • Ta bort ett meddelande
  • Ta bort en kö

Den här guiden kräver Azure PowerShell ( Az ) modul v0.7 eller senare. Kör Get-Module -ListAvailable Az för att hitta den installerade versionen. Om du behöver uppgradera kan du läsa Install Azure PowerShell module (Installera Azure PowerShell-modul).

Det finns inga PowerShell-cmdlets för dataplanet för köer. Om du vill utföra åtgärder på dataplanet, till exempel lägga till ett meddelande, läsa ett meddelande och ta bort ett meddelande, måste du använda .NET-lagringsklientbiblioteket eftersom det exponeras i PowerShell. Du skapar ett meddelandeobjekt och sedan kan du använda kommandon som AddMessage för att utföra åtgärder på meddelandet. Den här artikeln visar hur du gör det.

Anteckning

I den här artikeln används Azure Az PowerShell-modulen, som är den rekommenderade PowerShell-modulen för att interagera med Azure. För att komma igång med Az PowerShell kan du läsa artikeln om att installera Azure PowerShell. Information om hur du migrerar till Az PowerShell-modulen finns i artikeln om att migrera Azure PowerShell från AzureRM till Az.

Logga in på Azure

Logga in på din Azure-prenumeration med kommandot Connect-AzAccount och följ anvisningarna på skärmen.

Connect-AzAccount

Hämta lista över platser

Om du inte vet vilken plats du vill använda kan du visa en lista med tillgängliga platser. Hitta den du vill använda i listan som visas. I den här övningen används eastus . Lagra detta i variabeln location för framtida användning.

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

Skapa resursgrupp

Skapa en resursgrupp med kommandot New-AzResourceGroup.

En Azure-resursgrupp är en logisk container där Azure-resurser distribueras och hanteras. Lagra resursgruppens namn i en variabel för framtida användning. I det här exemplet ska vi skapa en resursgrupp med namnet howtoqueuesrg i regionen eastus.

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

Skapa lagringskonto

Skapa ett allmänt standardlagringskonto med lokalt redundant lagring (LRS) med Hjälp av New-AzStorageAccount. Hämta lagringskontokontexten som definierar lagringskontot som ska användas. När du arbetar med lagringskonton refererar du till kontexten i stället för att ange autentiseringsuppgifterna flera gånger.

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

$ctx = $storageAccount.Context

Skapa en kö

I följande exempel upprättas först en anslutning Azure Storage med hjälp av lagringskontokontexten, som innehåller lagringskontots namn och dess åtkomstnyckel. Därefter anropas cmdleten New-AzStorageQueue för att skapa en kö med namnet howtoqueue .

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

Information om namngivningskonventioner för Azure Queue Storage finns i Namngivning av köer och metadata.

Hämta en kö

Du kan fråga efter och hämta en specifik kö eller en lista över alla köer i ett lagringskonto. Följande exempel visar hur du hämtar alla köer i lagringskontot och en specifik kö. båda kommandona använder cmdleten 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

Lägga till ett meddelande i en kö

Åtgärder som påverkar de faktiska meddelandena i kön använder .NET-lagringsklientbiblioteket som det exponeras i PowerShell. Om du vill lägga till ett meddelande i en kö skapar du en ny instans av meddelandeobjektet, Microsoft.Azure.Storage.Queue.CloudQueueMessage klassen . Anropa sedan AddMessage metoden . En CloudQueueMessage kan skapas från antingen en sträng (i UTF-8-format) eller en bytematris.

Följande exempel visar hur du lägger till ett meddelande i kön.

# 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)

Om du använder Azure Storage Explorerkan du ansluta till ditt Azure-konto och visa köerna i lagringskontot och öka detaljgranska till en kö för att visa meddelanden i kön.

Läs ett meddelande från kön och ta sedan bort det

Meddelanden läses i "best-try first-in-first-out"-ordning. Detta garanteras inte. När du läser meddelandet från kön blir det osynligt för alla andra processer som tittar på kön. Detta säkerställer att en annan instans av koden kan få samma meddelande och försöka igen om koden inte kan bearbeta meddelandet på grund av ett maskinvaru- eller programvarufel.

Tidsgränsen för osynlighet definierar hur länge meddelandet förblir osynligt innan det blir tillgängligt igen för bearbetning. Standardvärdet är 30 sekunder.

Din kod läser ett meddelande från kön i två steg. När du Microsoft.Azure.Storage.Queue.CloudQueue.GetMessage anropar metoden får du nästa meddelande i kön. Ett meddelande som returneras GetMessage från blir osynligt för andra kodläsningsmeddelanden från den här kön. För att slutföra borttagningen av meddelandet från kön anropar du Microsoft.Azure.Storage.Queue.CloudQueue.DeleteMessage metoden .

I följande exempel läser du igenom de tre kömeddelandena och väntar sedan 10 sekunder (tidsgränsen för osynlighet). Sedan läser du de tre meddelandena igen och tar bort meddelandena efter att ha läst dem genom att anropa DeleteMessage . Om du försöker läsa kön när meddelandena har tagits bort $queueMessage returneras som $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)

Ta bort en kö

Om du vill ta bort en kö och alla meddelanden som finns i den anropar Remove-AzStorageQueue du cmdleten . I följande exempel visas hur du tar bort den specifika kö som används i den här övningen med Remove-AzStorageQueue hjälp av cmdleten .

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

Rensa resurser

Om du vill ta bort alla tillgångar som du har skapat i den här övningen tar du bort resursgruppen. Detta tar även bort alla resurser som ingår i gruppen. I det här fallet tas lagringskontot och själva resursgruppen bort.

Remove-AzResourceGroup -Name $resourceGroup

Nästa steg

I den här artikeln har du lärt dig om grundläggande queue-Storage hantering med PowerShell, inklusive hur du:

  • Skapa en kö
  • Hämta en kö
  • Lägg till ett meddelande
  • Läs nästa meddelande
  • Ta bort ett meddelande
  • Ta bort en kö

Microsoft Azure PowerShell storage-cmdlets

Microsoft Azure Storage Explorer

  • Microsoft Azure Storage Explorer är en kostnadsfri, fristående app från Microsoft som gör det möjligt att arbeta visuellt med Azure Storage-data i Windows, macOS och Linux.