Sdílet prostřednictvím


Klientská knihovna Fronty služby Azure Storage pro .NET – verze 12.13.1

Verze serveru: 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 a 2019-02-02-02

Azure Queue Storage je služba pro ukládání velkého počtu zpráv, ke které můžete získat přístup z jakéhokoli místa na světě prostřednictvím ověřených volání s využitím protokolu HTTP nebo HTTPS. Zpráva s jednou frontou může mít velikost až 64 kB a jedna fronta můžete obsahovat miliony zpráv, až do dosažení celkové kapacity účtu úložiště.

Zdrojový kód | Balíček (NuGet) | Referenční dokumentace k | rozhraní API Dokumentace k | rozhraní REST API Dokumentace k produktu

Začínáme

Instalace balíčku

Nainstalujte klientskou knihovnu Fronty služby Azure Storage pro .NET pomocí NuGetu:

dotnet add package Azure.Storage.Queues

Požadavky

K použití tohoto balíčku potřebujete předplatné Azure a účet úložiště .

K vytvoření nového účtu úložiště můžete použít Azure Portal, Azure PowerShell nebo Azure CLI. Tady je příklad použití Azure CLI:

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

Ověření klienta

Pokud chcete pracovat se službou Azure Queue Storage, budete muset vytvořit instanci třídy QueueClient. Knihovna Identit Azure usnadňuje přidání podpory Azure Active Directory pro ověřování klientů sady Azure SDK s odpovídajícími službami Azure.

// 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());

Další informace o povolení ověřování ve službě Azure Active Directory ve službě Azure Storage najdete v naší dokumentaci a v našich ukázkách.

Klíčové koncepty

Toto jsou některá běžná použití úložiště služby Queue Storage:

  • Vytvoření backlogu práce k asynchronnímu zpracování
  • Předávání zpráv mezi různými částmi distribuované aplikace

Bezpečnost vlákna

Zaručujeme, že všechny metody instance klienta jsou bezpečné pro přístup z více vláken a nezávislé na sobě (pokyny). Tím se zajistí, že doporučení opakovaně používat instance klienta je vždy bezpečné, a to i napříč vlákny.

Další koncepty

Možnosti | klienta Přístup k odpovědi | Dlouhotrvající operace | Zpracování selhání | Diagnostika | Zesměšňovat | Životnost klienta

Příklady

Odesílání zpráv

// 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!");

Příjem zpráv

// 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);
}

Asynchronní rozhraní API

Plně podporujeme synchronní i asynchronní rozhraní API.

// 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!");

Kódování zpráv

Tato verze knihovny ve výchozím nastavení zprávu nezakóduje. Verze 11 a předchozí verze a Azure Functions ve výchozím nastavení používat zprávy s kódováním base64. Proto se doporučuje používat tuto funkci ve scénářích zprostředkovatele komunikace.

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

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

Řešení potíží

Všechny operace služby Fronta služby Azure Storage vyvolají výjimku RequestFailedException při selhání s užitečnými chybamiErrorCode. Mnoho z těchto chyb je možné obnovit.

// 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
}

Další kroky

Začínáme s našimi ukázkami front:

  1. Hello World: Zprávy fronty enqueue, dequeue, náhledu a aktualizace fronty (nebo asynchronně)
  2. Ověřování: Ověřování pomocí připojovacích řetězců, sdílených klíčů, sdílených přístupových podpisů a Azure Active Directory.

Přispívání

Podrobnosti o vytváření, testování a přispívání do této knihovny najdete na CONTRIBUTING.md úložiště.

Tento projekt vítá příspěvky a návrhy. Většina příspěvků vyžaduje souhlas s licenční smlouvou s přispěvatelem (CLA), která stanoví, že máte právo udělit nám práva k používání vašeho příspěvku a skutečně tak činíte. Podrobnosti najdete v cla.microsoft.com.

Tento projekt přijal pravidla chování pro Microsoft Open Source. Další informace najdete v nejčastějších dotazech k pravidlům chování nebo kontaktujte s opencode@microsoft.com případnými dalšími dotazy nebo připomínkami.

Imprese