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.

Impressions