Bibliothèque cliente files d’attente de stockage Azure WebJobs pour .NET - version 5.2.0
Cette extension fournit des fonctionnalités permettant d’accéder aux files d’attente de stockage Azure dans Azure Functions.
Prise en main
Installer le package
Installez l’extension Files d’attente de stockage avec NuGet :
dotnet add package Azure.WebJobs.Extensions.Storage.Queues
Prérequis
Vous avez besoin d’un abonnement Azure et d’un compte de stockage pour utiliser ce package.
Pour créer un compte de stockage, vous pouvez utiliser le portail Azure, Azure PowerShell ou Azure CLI. Voici un exemple utilisant Azure CLI :
az storage account create --name <your-resource-name> --resource-group <your-resource-group-name> --location westus --sku Standard_LRS
Authentifier le client
Pour que l’extension puisse accéder aux files d’attente, vous aurez besoin de la chaîne de connexion qui se trouve dans le portail Azure ou à l’aide de l’extrait de code Azure CLI ci-dessous.
az storage account show-connection-string -g <your-resource-group-name> -n <your-resource-name>
La chaîne de connexion peut être fournie via le paramètre d’application AzureWebJobsStorage.
Concepts clés
Utilisation du déclencheur file d’attente
Le déclencheur de stockage de file d’attente exécute une fonction lorsque des messages sont ajoutés à Stockage File d’attente Azure.
Suivez le tutoriel pour en savoir plus sur l’écoute des files d’attente dans Azure Functions.
Utilisation de la liaison de file d’attente
La solution Azure Functions peut créer des messages de Stockage File d’attente Azure en configurant une liaison de sortie.
Suivez le tutoriel de liaison pour en savoir plus sur l’utilisation de cette extension pour produire des messages dans des files d’attente dans Azure Functions.
Exemples
Écoute de la file d’attente
L’ensemble d’exemples suivant montre comment recevoir et réagir aux messages qui sont ajoutés à la file d’attente.
Liaison d’un message de file d’attente à une chaîne
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);
}
}
Liaison du message de file d’attente à 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());
}
}
Liaison du message de file d’attente à 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());
}
}
Liaison du message de file d’attente au type personnalisé
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);
}
}
Liaison du message de file d’attente à 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"]);
}
}
Publication de messages dans la file d’attente
L’ensemble d’exemples suivant montre comment ajouter des messages à la file d’attente à l’aide de l’attribut Queue
.
Le QueueTrigger
est utilisé uniquement pour l’exhaustivité de l’exemple, c’est-à-dire que n’importe quel autre mécanisme de déclencheur peut être utilisé à la place.
Publication d’un message en tant que chaîne
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;
}
}
Publication d’un message en tant que 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;
}
}
Publication d’un message en tant que File d’attenteMessage
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;
}
}
Publication d’un message en tant que type personnalisé via le paramètre 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;
}
}
Publication du message en tant que type personnalisé via le collecteur
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);
}
}
Accès aux propriétés de file d’attente
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);
}
}
Configuration de l’extension
Reportez-vous à l’exemple d’application de fonctions.
Dépannage
Reportez-vous à Monitor Azure Functions pour obtenir des conseils de résolution des problèmes.
Étapes suivantes
Lisez l’introduction d’Azure Function ou la création d’un guide de fonction Azure.
Contribution
Pour plus d’informations sur la création, le test et la contribution à cette bibliothèque, consultez le CONTRIBUTING.md stockage .
Ce projet accepte les contributions et les suggestions. La plupart des contributions vous demandent d’accepter un contrat de licence de contribution (CLA) déclarant que vous avez le droit de nous accorder, et que vous nous accordez réellement, les droits d’utilisation de votre contribution. Pour plus d’informations, consultez cla.microsoft.com.
Ce projet a adopté le Code de conduite Open Source de Microsoft. Pour plus d’informations, consultez les Questions fréquentes (FAQ) sur le code de conduite ou envoyez vos questions ou vos commentaires à opencode@microsoft.com.