Aracılığıyla paylaş


.NET için Azure Depolama Kuyrukları istemci kitaplığı - sürüm 12.13.1

Sunucu Sürümü: 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 ve 2019-02-02

Azure Kuyruk depolama, HTTP veya HTTPS kullanan kimlik doğrulaması yapılmış çağrılar aracılığıyla dünyanın her yerinden erişilebilen çok sayıda iletinin depolanması için bir hizmettir. Tek bir kuyruk iletisinin boyutu 64 KB’ye kadar olabilir ve bir kuyrukta, depolama hesabının toplam kapasite sınırına kadar milyonlarca ileti bulunabilir.

Kaynak kodu | Paket (NuGet) | API başvuru belgeleri | REST API belgeleri | Ürün belgeleri

Başlarken

Paketi yükleme

NuGet ile .NET için Azure Depolama Kuyrukları istemci kitaplığını yükleyin:

dotnet add package Azure.Storage.Queues

Önkoşullar

Bu paketi kullanmak için bir Azure aboneliğine ve Depolama Hesabına ihtiyacınız vardır.

Yeni bir Depolama Hesabı oluşturmak için Azure Portalı, Azure PowerShell veya Azure CLI'yı kullanabilirsiniz. Azure CLI'yi kullanan bir örnek aşağıda verilmiştir:

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

İstemcinin kimliğini doğrulama

Azure Kuyruk Depolama hizmetiyle etkileşim kurmak için QueueClient sınıfının bir örneğini oluşturmanız gerekir. Azure Kimlik kitaplığı, Azure SDK istemcilerinin kimliklerini ilgili Azure hizmetleriyle doğrulamak için Azure Active Directory desteği eklemeyi kolaylaştırır.

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

Belgelerimizde ve örneklerimizde Azure Depolama ile kimlik doğrulaması için Azure Active Directory'yi etkinleştirme hakkında daha fazla bilgi edinin.

Önemli kavramlar

Kuyruk depolamanın yaygın kullanımları şunlardır:

  • Zaman uyumsuz olarak işlemek için kapsamı oluşturma
  • Dağıtılmış uygulamanın farklı bölümleri arasında ileti geçirme

İş parçacığı güvenliği

Tüm istemci örneği yöntemlerinin iş parçacığı açısından güvenli ve birbirinden bağımsız olduğunu garanti ediyoruz (kılavuz). Bu, istemci örneklerini yeniden kullanma önerisinin iş parçacıkları arasında bile her zaman güvenli olmasını sağlar.

Ek kavramlar

İstemci seçenekleri | Yanıta | erişme Uzun süre çalışan işlemler | | Hataları işlemeTanılama | Alaycı | İstemci ömrü

Örnekler

İleti gönderme

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

İleti alma

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

Zaman Uyumsuz API'ler

Hem zaman uyumlu hem de zaman uyumsuz API'leri tam olarak destekliyoruz.

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

İleti kodlama

Kitaplığın bu sürümü iletiyi varsayılan olarak kodlamaz. V11 ve önceki sürümlerin yanı sıra Azure İşlevleri varsayılan olarak base64 ile kodlanmış iletileri kullanır. Bu nedenle birlikte çalışma senaryolarında bu özelliğin kullanılması önerilir.

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

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

Sorun giderme

Tüm Azure Depolama Kuyruğu hizmeti işlemleri, yararlı ErrorCodes hatalarda bir RequestFailedException oluşturur. Bu hataların çoğu kurtarılabilir.

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

Sonraki adımlar

Kuyruk örneklerimizi kullanmaya başlayın:

  1. Merhaba Dünya: Sırala, Sırala, Göz At ve Kuyruk iletilerini güncelleştir (veya zaman uyumsuz olarak)
  2. Kimlik Doğrulaması: Bağlantı dizeleri, paylaşılan anahtarlar, paylaşılan erişim imzaları ve Azure Active Directory ile kimlik doğrulaması yapın.

Katkıda bulunma

Bu kitaplığı oluşturma, test etme ve bu kitaplığa katkıda bulunma hakkında ayrıntılı bilgi için bkz. Depolama CONTRIBUTING.md .

Bu proje, katkı ve önerilere açıktır. Çoğu durumda, sağladığınız katkıyı kullanmamız için bize hak tanıma hakkına sahip olduğunuzu ve bu hakkı bize tanıdığınızı bildiren bir Katkıda Bulunan Lisans Sözleşmesi’ni (CLA) kabul etmeniz gerekir. Ayrıntılar için cla.microsoft.com adresini ziyaret edin.

Bu proje Microsoft Open Source Code of Conduct (Microsoft Açık Kaynak Kullanım Kuralları) belgesinde listelenen kurallara uygundur. Daha fazla bilgi için Kullanım Kuralları SSS bölümüne bakın veya ek sorularınız veya yorumlarınızla iletişime geçin opencode@microsoft.com .

İzlenimler