適用于 .NET 的 Azure WebJobs 儲存體佇列用戶端程式庫 - 5.1.1 版
此擴充功能提供在 Azure Functions 中存取 Azure 儲存體佇列的功能。
開始使用
安裝套件
使用 NuGet安裝儲存體佇列擴充功能:
dotnet add package Azure.WebJobs.Extensions.Storage.Queues
必要條件
您需要 Azure 訂 用帳戶和 儲存體帳戶 才能使用此套件。
若要建立新的儲存體帳戶,您可以使用Azure 入口網站、Azure PowerShell或Azure 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。