Condividi tramite


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.

Impression