Azure Storage Queues-klientbibliotek för .NET – version 12.13.1

Serverversion: 2021-02-12, 2020-12-06, 2020-10-02, 2020-08-04, 2020-06-12, 2020-04-08, 2020-02-10, 2019-12-12, 2019-07-07 och 2019-02-02

Azure Queue Storage är en tjänst för att lagra stora mängder meddelanden som kan nås från var som helst i världen via autentiserade anrop med HTTP eller HTTPS. Ett enda kömeddelande kan vara upp till 64 KB stort och en kö kan innehålla miljontals meddelanden, upp till den totala kapacitetsgränsen för ett lagringskonto.

| Källkod Paket (NuGet) | API-referensdokumentation | REST API-dokumentation | Produktdokumentation

Komma igång

Installera paketet

Installera Azure Storage Queues-klientbiblioteket för .NET med NuGet:

dotnet add package Azure.Storage.Queues

Förutsättningar

Du behöver en Azure-prenumeration och ett lagringskonto för att kunna använda det här paketet.

Om du vill skapa ett nytt lagringskonto kan du använda Azure-portalen, Azure PowerShell eller Azure CLI. Här är ett exempel med Azure CLI:

az storage account create --name MyStorageAccount --resource-group MyResourceGroup --location westus --sku Standard_LRS

Autentisera klienten

För att kunna interagera med Azure Queue Storage-tjänsten måste du skapa en instans av klassen QueueClient. Azure Identity-biblioteket gör det enkelt att lägga till Azure Active Directory-stöd för autentisering av Azure SDK-klienter med motsvarande Azure-tjänster.

// Create a QueueClient that will authenticate through Active Directory
Uri queueUri = new Uri("https://MYSTORAGEACCOUNT.queue.core.windows.net/QUEUENAME");
QueueClient queue = new QueueClient(queueUri, new DefaultAzureCredential());

Läs mer om hur du aktiverar Azure Active Directory för autentisering med Azure Storage i vår dokumentation och våra exempel.

Viktiga begrepp

Vanliga användningsområden för Queue Storage är:

  • Skapa en lista med kvarvarande uppgifter att bearbeta asynkront
  • Skicka meddelanden mellan olika delar av ett distribuerat program

Trådsäkerhet

Vi garanterar att alla klientinstansmetoder är trådsäkra och oberoende av varandra (riktlinje). Detta säkerställer att rekommendationen att återanvända klientinstanser alltid är säker, även över trådar.

Ytterligare begrepp

Klientalternativ | Åtkomst till svaret | Tidskrävande åtgärder | Hantera fel | Diagnostik | Gäckande | Klientlivslängd

Exempel

Skicka meddelanden

// We'll need a connection string to your Azure Storage account.
// You can obtain your connection string from the Azure Portal
// (click Access Keys under Settings in the Portal Storage account
// blade) or using the Azure CLI with:
//
//     az storage account show-connection-string --name <account_name> --resource-group <resource_group>
//
// You would normally provide the connection string to your
// application using an environment variable.
string connectionString = "<connection_string>";

// Name of the queue we'll send messages to
string queueName = "sample-queue";

// Get a reference to a queue and then create it
QueueClient queue = new QueueClient(connectionString, queueName);
queue.Create();

// Send a message to our queue
queue.SendMessage("Hello, Azure!");

Ta emot meddelanden

// We'll need a connection string to your Azure Storage account.
string connectionString = "<connection_string>";

// Name of an existing queue we'll operate on
string queueName = "sample-queue";

// Get a reference to a queue and then fill it with messages
QueueClient queue = new QueueClient(connectionString, queueName);
queue.SendMessage("first");
queue.SendMessage("second");
queue.SendMessage("third");

// Get the next messages from the queue
foreach (QueueMessage message in queue.ReceiveMessages(maxMessages: 10).Value)
{
    // "Process" the message
    Console.WriteLine($"Message: {message.Body}");

    // Let the service know we're finished with the message and
    // it can be safely deleted.
    queue.DeleteMessage(message.MessageId, message.PopReceipt);
}

Asynkrona API:er

Vi har fullt stöd för både synkrona och asynkrona API:er.

// We'll need a connection string to your Azure Storage account.
string connectionString = "<connection_string>";

// Name of the queue we'll send messages to
string queueName = "sample-queue";

// Get a reference to a queue and then create it
QueueClient queue = new QueueClient(connectionString, queueName);
await queue.CreateAsync();

// Send a message to our queue
await queue.SendMessageAsync("Hello, Azure!");

Meddelandekodning

Den här versionen av biblioteket kodar inte meddelanden som standard. V11 och tidigare versioner samt Azure Functions använda base64-kodade meddelanden som standard. Därför rekommenderar vi att du använder den här funktionen för interop-scenarier.

QueueClientOptions queueClientOptions = new QueueClientOptions()
{
    MessageEncoding = QueueMessageEncoding.Base64
};

QueueClient queueClient = new QueueClient(connectionString, queueName, queueClientOptions);

Felsökning

Alla azure storage queue service-åtgärder genererar en RequestFailedException vid fel med användbara ErrorCodes. Många av dessa fel kan återställas.

// We'll need a connection string to your Azure Storage account.
string connectionString = "<connection_string>";

// Name of an existing queue we'll operate on
string queueName = "sample-queue";

try
{
    // Try to create a queue that already exists
    QueueClient queue = new QueueClient(connectionString, queueName);
    queue.Create();
}
catch (RequestFailedException ex)
    when (ex.ErrorCode == QueueErrorCode.QueueAlreadyExists)
{
    // Ignore any errors if the queue already exists
}

Nästa steg

Kom igång med våra köexempel:

  1. Hello World: Kömeddelanden (eller asynkront)
  2. Autentisering: Autentisera med anslutningssträngar, delade nycklar, signaturer för delad åtkomst och Azure Active Directory.

Bidra

Mer information om hur du skapar, testar och bidrar till det här biblioteket finns i Storage CONTRIBUTING.md .

Det här projektet välkomnar bidrag och förslag. Merparten av bidragen kräver att du godkänner ett licensavtal för bidrag, där du deklarerar att du har behörighet att bevilja oss rättigheten att använda ditt bidrag, och att du dessutom uttryckligen gör så. Mer information finns i cla.microsoft.com.

Det här projektet använder sig av Microsofts uppförandekod för öppen källkod. Mer information finns i Vanliga frågor och svar om uppförandekoden eller kontakta opencode@microsoft.com med ytterligare frågor eller kommentarer.

Visningar