Microsoft.Azure.WebJobs.Extensions.Storage.Queues 5.3.1
前缀已保留
dotnet add package Microsoft.Azure.WebJobs.Extensions.Storage.Queues --version 5.3.1
NuGet\Install-Package Microsoft.Azure.WebJobs.Extensions.Storage.Queues -Version 5.3.1
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.Storage.Queues" Version="5.3.1" />
paket add Microsoft.Azure.WebJobs.Extensions.Storage.Queues --version 5.3.1
#r "nuget: Microsoft.Azure.WebJobs.Extensions.Storage.Queues, 5.3.1"
// Install Microsoft.Azure.WebJobs.Extensions.Storage.Queues as a Cake Addin #addin nuget:?package=Microsoft.Azure.WebJobs.Extensions.Storage.Queues&version=5.3.1 // Install Microsoft.Azure.WebJobs.Extensions.Storage.Queues as a Cake Tool #tool nuget:?package=Microsoft.Azure.WebJobs.Extensions.Storage.Queues&version=5.3.1
Azure WebJobs 存储队列客户端库,用于 .NET
此扩展提供了在 Azure Functions 中访问 Azure 存储 Queue 的功能。
入门指南
安装代码包
使用 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;
}
}
通过输出参数作为自定义类型发布消息
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 Functions简介或创建Azure Function指南。
贡献
有关构建、测试和为该库做出贡献的详细信息,请参阅Storage CONTRIBUTING.md。
此项目欢迎贡献和建议。大多数贡献都需要您同意贡献许可协议(CLA),声明您有权,并且确实向我们授予了使用您贡献的权利。有关详细信息,请访问cla.microsoft.com。
此项目已采用Microsoft开源行为准则。有关更多信息,请查看行为准则FAQ或通过[email protected]联系有关任何额外问题或评论。
产品 | 版本 兼容的和额外的计算目标框架版本。 |
---|---|
.NET | net5.0 已计算。 net5.0-windows 已计算。 net6.0 已计算。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 已计算。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 已计算。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。 |
.NET Core | netcoreapp2.0 已计算。 netcoreapp2.1 已计算。 netcoreapp2.2 已计算。 netcoreapp3.0 已计算。 netcoreapp3.1 已计算。 |
.NET Standard | netstandard2.0 兼容。 netstandard2.1 已计算。 |
.NET Framework | net461 已计算。 net462 已计算。 net463 已计算。 net47 已计算。 net471 已计算。 net472 已计算。 net48 已计算。 net481 已计算。 |
MonoAndroid | monoandroid 已计算。 |
MonoMac | monomac 已计算。 |
MonoTouch | monotouch 已计算。 |
Tizen | tizen40 已计算。 tizen60 已计算。 |
Xamarin.iOS | xamarinios 已计算。 |
Xamarin.Mac | xamarinmac 已计算。 |
Xamarin.TVOS | xamarintvos 已计算。 |
Xamarin.WatchOS | xamarinwatchos 已计算。 |
-
.NETStandard 2.0
- Azure.Storage.Queues (>= 12.19.0)
- Microsoft.Azure.WebJobs (>= 3.0.37)
- Microsoft.Extensions.Azure (>= 1.7.4)
NuGet 软件包 (2)
显示依赖 Microsoft.Azure.WebJobs.Extensions.Storage.Queues 的前两个 NuGet 软件包
软件包 | 下载 |
---|---|
Microsoft.Azure.WebJobs.Extensions.Storage 此扩展添加了对存储的绑定 |
|
SimpleMessageBus.Dispatch
SimpleMessageBus 是一个系统,通过在用户主要工作流程之外处理可能长时间运行的任务,从而使应用更可靠、更响应用户。它旨在在本地或微软云中运行,适用于任何应用,并可随着需求增长而扩展。 |
GitHub 仓库 (3)
显示依赖 Microsoft.Azure.WebJobs.Extensions.Storage.Queues 的最受欢迎的前三个 GitHub 仓库
仓库 | 星标 |
---|---|
Azure/azure-sdk-for-net
此仓库用于 Azure SDK for .NET 的开发。对于 SDK 的消费者,我们建议您访问我们的公共开发者文档 https://learn.microsoft.com/dotnet/azure/ 或我们的版本开发者文档 https://azure.github.io/azure-sdk-for-net。
|
|
Azure-Samples/Serverless-microservices-reference-architecture
本参考架构通过实际操作指令,指导您了解在微服务架构下设计、开发和交付无服务器应用程序的决策过程。在这个过程中,我们将配置和部署架构的所有组件,目标是提供使用多个Azure服务和它们协同统一使用技术的实际操作经验,构建以无服务器为基础的微服务架构。
|
|
Azure/azure-functions-kafka-extension
Azure Functions的Kafka扩展
|
版本 | 下载 | 最后更新 |
---|---|---|
5.3.1 | 35,600 | 7/17/2024 |
5.3.0 | 362,554 | 4/19/2024 |
5.3.0-beta.1 | 551 | 4/16/2024 |
5.2.1 | 579,720 | 12/12/2023 |
5.2.0 | 150,601 | 9/25/2023 |
5.1.3 | 3,727,294 | 6/26/2023 |
5.1.2 | 884,226 | 4/28/2023 |
5.1.1 | 460,965 | 3/24/2023 |
5.1.0 | 419,513 | 2/22/2023 |
5.1.0-beta.1 | 1,830 | 2/8/2023 |
5.0.1 | 6,231,064 | 5/3/2022 |
5.0.0 | 5,437,066 | 10/26/2021 |
5.0.0-beta.5 | 122,325 | 7/9/2021 |
5.0.0-beta.4 | 36,019 | 5/18/2021 |
5.0.0-beta.3 | 14,229 | 3/10/2021 |
5.0.0-beta.2 | 20,280 | 2/10/2021 |
5.0.0-beta.1 | 32,864 | 11/10/2020 |