Libreria client code di archiviazione processi Web di Azure per .NET - versione 5.1.1
Questa estensione offre funzionalità per l'accesso alle code di archiviazione di Azure in Funzioni di Azure.
Introduzione
Installare il pacchetto
Installare l'estensione Code di archiviazione con NuGet:
dotnet add package Azure.WebJobs.Extensions.Storage.Queues
Prerequisiti
Per usare questo pacchetto sono necessari una sottoscrizione di Azure e un account di archiviazione .
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 <your-resource-name> --resource-group <your-resource-group-name> --location westus --sku Standard_LRS
Autenticare il client
Per consentire all'estensione di accedere alle code, è necessaria la stringa di connessione disponibile nel portale di Azure o usando il frammento di interfaccia della riga di comando di Azure riportato di seguito.
az storage account show-connection-string -g <your-resource-group-name> -n <your-resource-name>
La stringa di connessione può essere fornita tramite l'impostazione dell'app AzureWebJobsStorage.
Concetti chiave
Uso del trigger della coda
Il trigger di archiviazione code esegue una funzione come messaggi vengono aggiunti all'archiviazione code di Azure.
Seguire l'esercitazione per informazioni su come ascoltare le code in Funzioni di Azure.
Uso dell'associazione di accodamento
Funzioni di Azure possibile creare nuovi messaggi di archiviazione code di Azure configurando un'associazione di output.
Seguire l'esercitazione sull'associazione per informazioni sull'uso di questa estensione per la produzione di messaggi in code in Funzioni di Azure.
Esempio
Ascolto della coda
Il set di esempi seguente illustra come ricevere e reagire ai messaggi aggiunti alla coda.
Binding queue message to string (Binding queue message to string)
public static class QueueTriggerFunction_String
{
[FunctionName("QueueTriggerFunction")]
public static void Run(
[QueueTrigger("sample-queue")] string message,
ILogger logger)
{
logger.LogInformation("Received message from sample-queue, content={content}", message);
}
}
Binding del messaggio della coda a BinaryData
public static class QueueTriggerFunction_BinaryData
{
[FunctionName("QueueTriggerFunction")]
public static void Run(
[QueueTrigger("sample-queue")] BinaryData message,
ILogger logger)
{
logger.LogInformation("Received message from sample-queue, content={content}", message.ToString());
}
}
Binding del messaggio della coda a QueueMessage
public static class QueueTriggerFunction_QueueMessage
{
[FunctionName("QueueTriggerFunction")]
public static void Run(
[QueueTrigger("sample-queue")] QueueMessage message,
ILogger logger)
{
logger.LogInformation("Received message from sample-queue, content={content}", message.Body.ToString());
}
}
Binding del messaggio della coda al tipo personalizzato
public static class QueueTriggerFunction_CustomObject
{
public class CustomMessage
{
public string Content { get; set; }
}
[FunctionName("QueueTriggerFunction")]
public static void Run(
[QueueTrigger("sample-queue")] CustomMessage message,
ILogger logger)
{
logger.LogInformation("Received message from sample-queue, content={content}", message.Content);
}
}
Binding del messaggio della coda a JObject
public static class QueueTriggerFunction_JObject
{
[FunctionName("QueueTriggerFunction")]
public static void Run(
[QueueTrigger("sample-queue")] JObject message,
ILogger logger)
{
logger.LogInformation("Received message from sample-queue, content={content}", message["content"]);
}
}
Pubblicazione di messaggi in coda
Il set di esempi seguente illustra come aggiungere messaggi alla coda usando l'attributo Queue
.
Viene QueueTrigger
usato solo per la completezza del campione, ad esempio qualsiasi altro meccanismo di trigger può essere usato.
Pubblicazione del messaggio come stringa
public static class QueueSenderFunction_String_Return
{
[FunctionName("QueueFunction")]
[return: Queue("sample-queue-2")]
public static string Run(
[QueueTrigger("sample-queue-1")] string message,
ILogger logger)
{
logger.LogInformation("Received message from sample-queue-1, content={content}", message);
logger.LogInformation("Dispatching message to sample-queue-2");
return message;
}
}
Pubblicazione di un messaggio come BinaryData
public static class QueueSenderFunction_BinaryData_Return
{
[FunctionName("QueueFunction")]
[return: Queue("sample-queue-2")]
public static BinaryData Run(
[QueueTrigger("sample-queue-1")] BinaryData message,
ILogger logger)
{
logger.LogInformation("Received message from sample-queue-1, content={content}", message.ToString());
logger.LogInformation("Dispatching message to sample-queue-2");
return message;
}
}
Pubblicazione del messaggio come QueueMessage
public static class QueueSenderFunction_QueueMessage_Return
{
[FunctionName("QueueFunction")]
[return: Queue("sample-queue-2")]
public static QueueMessage Run(
[QueueTrigger("sample-queue-1")] QueueMessage message,
ILogger logger)
{
logger.LogInformation("Received message from sample-queue-1, content={content}", message.Body.ToString());
logger.LogInformation("Dispatching message to sample-queue-2");
return message;
}
}
Pubblicazione del messaggio come tipo personalizzato tramite il parametro out
public static class QueueSenderFunction_CustomObject_OutParamter
{
public class CustomMessage
{
public string Content { get; set; }
}
[FunctionName("QueueFunction")]
public static void Run(
[QueueTrigger("sample-queue-1")] CustomMessage incomingMessage,
[Queue("sample-queue-2")] out CustomMessage outgoingMessage,
ILogger logger)
{
logger.LogInformation("Received message from sample-queue-1, content={content}", incomingMessage.Content);
logger.LogInformation("Dispatching message to sample-queue-2");
outgoingMessage = incomingMessage;
}
}
Pubblicazione del messaggio come tipo personalizzato tramite l'agente di raccolta
public static class QueueSenderFunction_CustomObject_Collector
{
public class CustomMessage
{
public string Content { get; set; }
}
[FunctionName("QueueFunction")]
public static void Run(
[QueueTrigger("sample-queue-1")] CustomMessage incomingMessage,
[Queue("sample-queue-2")] ICollector<CustomMessage> collector,
ILogger logger)
{
logger.LogInformation("Received message from sample-queue-1, content={content}", incomingMessage.Content);
logger.LogInformation("Dispatching message to sample-queue-2");
collector.Add(incomingMessage);
}
}
Accesso alle proprietà della coda
public static class Function_BindingToQueueClient
{
[FunctionName("QueueFunction")]
public static async Task Run(
[QueueTrigger("sample-queue")] string message,
[Queue("sample-queue")] QueueClient queueClient,
ILogger logger)
{
logger.LogInformation("Received message from sample-queue, content={content}", message);
QueueProperties queueProperties = await queueClient.GetPropertiesAsync();
logger.LogInformation("There are approximatelly {count} messages", queueProperties.ApproximateMessagesCount);
}
}
Configurazione dell'estensione
Fare riferimento all'app per le funzioni di esempio.
Risoluzione dei problemi
Per indicazioni sulla risoluzione dei problemi, vedere Monitorare Funzioni di Azure.
Passaggi successivi
Leggere l'introduzione alla funzione di Azure o creare una guida alle funzioni di Azure.
Contributo
Per informazioni dettagliate sulla compilazione, il test e il 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.