共用方式為


適用于 .NET 的 Azure WebJobs 儲存體佇列用戶端程式庫 - 5.1.1 版

此擴充功能提供在 Azure Functions 中存取 Azure 儲存體佇列的功能。

開始使用

安裝套件

使用 NuGet安裝儲存體佇列擴充功能:

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

必要條件

您需要 Azure 訂 用帳戶和 儲存體帳戶 才能使用此套件。

若要建立新的儲存體帳戶,您可以使用Azure 入口網站Azure PowerShellAzure CLI。 以下是使用 Azure CLI 的範例:

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

驗證用戶端

若要讓擴充功能存取佇列,您需要可在 Azure 入口網站或 使用下列 Azure CLI 程式碼片段找到的連接字串。

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

您可以透過 AzureWebJobsStorage 應用程式設定來提供連接字串。

重要概念

使用佇列觸發程式

佇列儲存體觸發程序會在訊息新增至 Azure 佇列儲存體時執行函式。

請遵循教學課程,瞭解如何接聽Azure Functions中的佇列。

使用佇列系結

Azure Functions 可以設定輸出繫結來建立新的 Azure 佇列儲存體訊息。

請遵循系結教學課程,瞭解如何使用此擴充功能將訊息產生至Azure Functions中的佇列。

範例

接聽佇列

下列範例集示範如何接收和回應要新增至佇列的訊息。

將佇列訊息系結至字串

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

將佇列訊息系結至 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());
    }
}

將佇列訊息系結至 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());
    }
}

將佇列訊息系結至自訂類型

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

將佇列訊息系結至 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"]);
    }
}

將訊息發佈至佇列

下列範例集示範如何使用 屬性將訊息新增至佇列 Queue

QueueTrigger僅用於範例完整性,亦即可以改用任何其他觸發程式機制。

將訊息發佈為字串

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

將訊息發佈為 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;
    }
}

將訊息發佈為 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;
    }
}

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

透過收集器將訊息發佈為自訂類型

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

存取佇列屬性

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

設定擴充功能

請參閱 範例函式應用程式

疑難排解

如需疑難排解指引,請參閱監視Azure Functions

下一步

閱讀 Azure 函式簡介建立 Azure 函式指南

參與

如需建置、測試和參與此程式庫的詳細資訊,請參閱 儲存體 CONTRIBUTING.md

此專案歡迎參與和提供建議。 大部分的參與都要求您同意「參與者授權合約 (CLA)」,宣告您有權且確實授與我們使用投稿的權利。 如需詳細資訊,請造訪 cla.microsoft.com

此專案採用 Microsoft Open Source Code of Conduct (Microsoft 開放原始碼管理辦法)。 如需詳細資訊,請參閱管理辦法常見問題集,如有任何其他問題或意見請連絡 opencode@microsoft.com

曝光數