Libreria client code di Archiviazione di Azure per .NET - versione 12.13.1
Versione server: 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 e 2019-02-02-02
Il servizio di archiviazione di accodamento di Azure consente di archiviare grandi quantità di messaggi ai quali è possibile accedere da qualsiasi parte del mondo mediante chiamate autenticate tramite HTTP o HTTPS. La dimensione massima di un singolo messaggio della coda è di 64 KB e una coda può contenere milioni di messaggi, nei limiti della capacità complessiva di un account di archiviazione.
Codice | sorgente Pacchetto (NuGet) | Documentazione di | riferimento sulle API Documentazione | dell'API RESTDocumentazione del prodotto
Introduzione
Installare il pacchetto
Installare la libreria client code di archiviazione di Azure per .NET con NuGet:
dotnet add package Azure.Storage.Queues
Prerequisiti
È necessaria una sottoscrizione di Azure e un account di archiviazione per usare questo pacchetto.
Per creare un nuovo account di archiviazione, è possibile usare il portale di Azure, Azure PowerShell o l'interfaccia della riga di comando di Azure. Di seguito è riportato un esempio basato sull'uso dell'interfaccia della riga di comando di Azure:
az storage account create --name MyStorageAccount --resource-group MyResourceGroup --location westus --sku Standard_LRS
Autenticare il client
Per interagire con il servizio archiviazione code di Azure, è necessario creare un'istanza della classe QueueClient. La libreria di identità di Azure semplifica l'aggiunta del supporto di Azure Active Directory per l'autenticazione dei client azure SDK con i servizi di Azure corrispondenti.
// 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());
Altre informazioni sull'abilitazione di Azure Active Directory per l'autenticazione con Archiviazione di Azure nella documentazione e negli esempi.
Concetti chiave
Di seguito sono riportati gli utilizzi più comuni per il servizio di archiviazione di accodamento.
- Creazione di un backlog di lavoro da elaborare in modo asincrono
- Passaggio di messaggi tra parti diverse di un'applicazione distribuita
Thread safety
Si garantisce che tutti i metodi di istanza client siano thread-safe e indipendenti tra loro (linee guida). Ciò garantisce che la raccomandazione di riutilizzare le istanze client sia sempre sicura, anche tra thread.
Concetti aggiuntivi
Opzioni | client Accesso alla risposta | Operazioni | a esecuzione prolungataGestione degli errori | Diagnostica | Beffardo | Durata client
Esempio
Inviare messaggi
// 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!");
Ricevere messaggi
// 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);
}
API asincrone
Supportiamo completamente sia le API sincrone che asincrone.
// 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!");
Codifica messaggio
Questa versione della libreria non codifica il messaggio per impostazione predefinita. V11 e versioni precedenti, nonché Funzioni di Azure usare messaggi con codifica base64 per impostazione predefinita. È pertanto consigliabile usare questa funzionalità per gli scenari di interoperabilità.
QueueClientOptions queueClientOptions = new QueueClientOptions()
{
MessageEncoding = QueueMessageEncoding.Base64
};
QueueClient queueClient = new QueueClient(connectionString, queueName, queueClientOptions);
Risoluzione dei problemi
Tutte le operazioni del servizio coda di archiviazione di Azure genereranno un'eccezione RequestFailedException in caso di errore con s utileErrorCode
. Molti di questi errori sono recuperabili.
// 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
}
Passaggi successivi
Introduzione agli esempi di coda:
- Hello World: Enqueue, Dequeue, Peek e Update queue messages (o asincrono)
- Autenticazione: eseguire l'autenticazione con stringhe di connessione, chiavi condivise, firme di accesso condiviso e Azure Active Directory.
Contributo
Per informazioni dettagliate su compilazione, test e contributo a questa libreria, vedere Archiviazione CONTRIBUTING.md .
In questo progetto sono benvenuti i contributi e i suggerimenti. Per la maggior parte dei contenuti è necessario sottoscrivere un contratto di licenza di collaborazione (CLA, Contributor License Agreement) che stabilisce che l'utente ha il diritto di concedere, e di fatto concede a Microsoft i diritti d'uso del suo contributo. Per informazioni dettagliate, visitare cla.microsoft.com.
Questo progetto ha adottato il Codice di comportamento di Microsoft per l'open source. Per altre informazioni, vedere Code of Conduct FAQ (Domande frequenti sul Codice di comportamento Open Source di Microsoft) oppure contattare opencode@microsoft.com per eventuali altre domande o commenti.