Azure WebJobs Storage-clientbibliotheek voor wachtrijen voor .NET - versie 5.1.1
Deze extensie biedt functionaliteit voor toegang tot Azure Storage-wachtrijen in Azure Functions.
Aan de slag
Het pakket installeren
Installeer de extensie Opslagwachtrijen met NuGet:
dotnet add package Azure.WebJobs.Extensions.Storage.Queues
Vereisten
U hebt een Azure-abonnement en een opslagaccount nodig om dit pakket te kunnen gebruiken.
Als u een nieuw opslagaccount wilt maken, kunt u azure portal, Azure PowerShell of de Azure CLI gebruiken. Hier volgt een voorbeeld van het gebruik van de Azure CLI:
az storage account create --name <your-resource-name> --resource-group <your-resource-group-name> --location westus --sku Standard_LRS
De client verifiëren
Als u wilt dat de extensie toegang krijgt tot wachtrijen, hebt u de connection string nodig die u kunt vinden in de Azure-portal of met behulp van het onderstaande Azure CLI-fragment.
az storage account show-connection-string -g <your-resource-group-name> -n <your-resource-name>
De connection string kan worden geleverd via de app-instelling AzureWebJobsStorage.
Belangrijkste concepten
Wachtrijtrigger gebruiken
De wachtrijopslagtrigger voert een functie uit wanneer berichten worden toegevoegd aan Azure Queue Storage.
Volg de zelfstudie voor meer informatie over het luisteren naar wachtrijen in Azure Functions.
Wachtrijbinding gebruiken
Azure Functions kunt nieuwe Azure Queue Storage-berichten maken door een uitvoerbinding in te stellen.
Volg de bindingszelfstudie voor meer informatie over het gebruik van deze extensie voor het produceren van berichten in wachtrijen in Azure Functions.
Voorbeelden
Luisteren naar wachtrij
In de volgende reeks voorbeelden ziet u hoe u berichten ontvangt en erop reageert die aan de wachtrij worden toegevoegd.
Wachtrijbericht binden aan tekenreeks
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);
}
}
Wachtrijbericht binden aan 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());
}
}
Wachtrijbericht binden aan 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());
}
}
Wachtrijbericht binden aan aangepast type
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);
}
}
Wachtrijbericht binden aan 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"]);
}
}
Berichten publiceren in de wachtrij
In de volgende set voorbeelden ziet u hoe u berichten aan de wachtrij toevoegt met behulp van Queue
een kenmerk.
De QueueTrigger
wordt alleen gebruikt voor volledigheid van voorbeelden, dat wil zeggen dat in plaats daarvan elk ander triggermechanisme kan worden gebruikt.
Bericht publiceren als tekenreeks
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;
}
}
Bericht publiceren als 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;
}
}
Bericht publiceren als 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;
}
}
Bericht publiceren als aangepast type via outparameter
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;
}
}
Bericht publiceren als aangepast type via collector
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);
}
}
Toegang tot wachtrijeigenschappen
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);
}
}
De extensie configureren
Raadpleeg de voorbeeldfunctie-app.
Problemen oplossen
Raadpleeg Monitor Azure Functions voor hulp bij het oplossen van problemen.
Volgende stappen
Lees de inleiding tot Azure Function of de handleiding voor het maken van een Azure-functie.
Bijdragen
Zie de Storage CONTRIBUTING.md voor meer informatie over het bouwen, testen en bijdragen aan deze bibliotheek.
Wij verwelkomen bijdragen en suggesties voor dit project. Voor de meeste bijdragen moet u instemmen met een licentieovereenkomst voor bijdragers (CLA: Contributor License Agreement) waarin u verklaart dat u gerechtigd bent ons het recht te geven uw bijdrage te gebruiken, en dat u dit ook doet. Ga naar cla.microsoft.com voor meer informatie.
Op dit project is de Microsoft Open Source Code of Conduct (Microsoft Open Source-gedragscode) van toepassing. Zie de Veelgestelde vragen over de gedragscode voor meer informatie of neem contact op opencode@microsoft.com met eventuele aanvullende vragen of opmerkingen.