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

Azure Queue Storage är en tjänst för lagring av ett stort antal meddelanden som kan nås var som helst i världen via HTTP eller HTTPS. Detaljerad information finns i Introduktion till Azure Queue Storage. Den här artikeln beskriver vanliga kölagringsåtgärder. 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 modulen Azure PowerShell (Az) 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-cmdletar för dataplanet för köer. Om du vill utföra dataplansåtgärder som att lägga till ett meddelande, läsa ett meddelande och ta bort ett meddelande måste du använda .NET-lagringsklientbiblioteket när 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

Vi rekommenderar att du använder Azure Az PowerShell-modulen för att interagera med Azure. Se Installera Azure PowerShell för att komma igång. 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 standardlagringskonto för generell användning med lokalt redundant lagring (LRS) med 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 till 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 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 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.

I följande exempel visas 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 Explorer kan du ansluta till ditt Azure-konto och visa köerna i lagringskontot och öka detaljnivån i en kö för att visa meddelandena i kön.

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

Meddelanden läss i bäst-prova först-in-först-ut-ordning. Detta är inte garanterat. 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 om koden inte kan bearbeta meddelandet på grund av maskinvaru- eller programvarufel kan en annan instans av koden få samma meddelande och försöka igen.

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

Koden läser ett meddelande från kön i två steg. När du anropar Microsoft.Azure.Storage.Queue.CloudQueue.GetMessage metoden får du nästa meddelande i kön. Ett meddelande som returneras från GetMessage blir osynligt för all annan kod som läser meddelanden från den här kön. För att slutföra borttagningen av meddelandet från kön anropar Microsoft.Azure.Storage.Queue.CloudQueue.DeleteMessage du 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 $queueMessage bort 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 du cmdleten Remove-AzStorageQueue . I följande exempel visas hur du tar bort den specifika kön som används i den här övningen med hjälp av cmdleten Remove-AzStorageQueue .

# 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 tar den bort lagringskontot som skapats och själva resursgruppen.

Remove-AzResourceGroup -Name $resourceGroup

Nästa steg

I den här artikeln har du lärt dig om grundläggande Hantering av kölagring 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 lagrings-cmdletar

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.