Sdílet prostřednictvím


Klientská knihovna front služby Azure WebJobs Storage pro .NET – verze 5.1.1

Toto rozšíření poskytuje funkce pro přístup k frontám Azure Storage v Azure Functions.

Začínáme

Instalace balíčku

Nainstalujte rozšíření Fronty úložiště pomocí NuGetu:

dotnet add package Azure.WebJobs.Extensions.Storage.Queues

Požadavky

K použití tohoto balíčku potřebujete předplatné Azure a účet úložiště .

K vytvoření nového účtu úložiště můžete použít Azure Portal, Azure PowerShell nebo Azure CLI. Tady je příklad použití Azure CLI:

az storage account create --name <your-resource-name> --resource-group <your-resource-group-name> --location westus --sku Standard_LRS

Ověření klienta

Aby rozšíření mohlo přistupovat k frontám, budete potřebovat připojovací řetězec, který najdete na webu Azure Portal nebo pomocí fragmentu kódu Azure CLI níže.

az storage account show-connection-string -g <your-resource-group-name> -n <your-resource-name>

Připojovací řetězec je možné zadat prostřednictvím nastavení aplikace AzureWebJobsStorage.

Klíčové koncepty

Použití triggeru fronty

Trigger služby Queue Storage spustí funkci při přidání zpráv do služby Azure Queue Storage.

V tomto kurzu se dozvíte, jak naslouchat frontám v Azure Functions.

Použití vazby fronty

Azure Functions můžete vytvářet nové zprávy služby Azure Queue Storage nastavením výstupní vazby.

Postupujte podle kurzu vazby, kde se dozvíte, jak pomocí tohoto rozšíření vytvářet zprávy do front v Azure Functions.

Příklady

Naslouchání frontě

Následující sada příkladů ukazuje, jak přijímat zprávy přidané do fronty a reagovat na ně.

Vazba zprávy fronty na řetězec

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);
    }
}

Vazba zprávy fronty na 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());
    }
}

Vazba zprávy fronty na 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());
    }
}

Vazba zprávy fronty na vlastní typ

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);
    }
}

Vazba zprávy fronty s objektem 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"]);
    }
}

Publikování zpráv do fronty

Následující sada příkladů ukazuje, jak přidat zprávy do fronty pomocí Queue atributu .

Slouží QueueTrigger pouze pro úplnost vzorku, tj. lze místo toho použít jakýkoli jiný aktivační mechanismus.

Publikování zprávy jako řetězce

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;
    }
}

Publikování zprávy jako 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;
    }
}

Publikování zprávy jako 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;
    }
}

Publikování zprávy jako vlastního typu prostřednictvím parametru 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;
    }
}

Publikování zprávy jako vlastního typu prostřednictvím kolektoru

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);
    }
}

Přístup k vlastnostem fronty

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);
    }
}

Konfigurace rozšíření

Projděte si ukázkovou aplikaci funkcí.

Řešení potíží

Pokyny k řešení potíží najdete v tématu Monitorování Azure Functions.

Další kroky

Přečtěte si úvod ke službě Azure Functions nebo si přečtěte průvodce vytvořením funkce Azure Functions.

Přispívání

Podrobnosti o vytváření, testování a přispívání do této knihovny najdete na CONTRIBUTING.md úložiště.

Tento projekt vítá příspěvky a návrhy. Většina příspěvků vyžaduje souhlas s licenční smlouvou s přispěvatelem (CLA), která stanoví, že máte právo udělit nám práva k používání vašeho příspěvku a skutečně tak činíte. Podrobnosti najdete v cla.microsoft.com.

Tento projekt přijal pravidla chování pro Microsoft Open Source. Další informace najdete v nejčastějších dotazech k pravidlům chování nebo kontaktujte s opencode@microsoft.com případnými dalšími dotazy nebo připomínkami.

Imprese