AWS.Messaging.Lambda 0.10.0
前缀预留
dotnet add package AWS.Messaging.Lambda --version 0.10.0
NuGet\Install-Package AWS.Messaging.Lambda -Version 0.10.0
<PackageReference Include="AWS.Messaging.Lambda" Version="0.10.0" />
paket add AWS.Messaging.Lambda --version 0.10.0
#r "nuget: AWS.Messaging.Lambda, 0.10.0"
// Install AWS.Messaging.Lambda as a Cake Addin #addin nuget:?package=AWS.Messaging.Lambda&version=0.10.0 // Install AWS.Messaging.Lambda as a Cake Tool #tool nuget:?package=AWS.Messaging.Lambda&version=0.10.0
AWS Lambda插件,用于.NET的AWS消息处理框架
注意: 此库处于开发者预览版。它提供了对即将到来的AWS Message Processing Framework for .NET功能的早期访问。1.0.0之前的任何版本可能包含破坏性更改。
此包是AWS Message Processing Framework for .NET的一个插件,允许.NET Lambda函数处理由框架发布的消息。
在AWS Lambda中,服务负责从SQS队列读取消息并在消息事件上调用您的Lambda函数。此插件允许您将接收到的Lambda事件发送到消息处理框架,以便它可以将消息分派给IMessageHandler
。
示例
要开始,将AWS.Messaging.Lambda
NuGet包添加到项目中
dotnet add package AWS.Messaging.Lambda
下面示例使用了.NET Amazon Lambda 注解框架,该框架使得设置 .NET 的依赖注入变得简单。
在Startup
类中,添加对AddAWSMessageBus
的调用,以配置 AWS 消息处理框架,为 Lambda 函数预期处理的每种消息类型添加IMessageHandler
。要使用框架与 Lambda 配置注入所需的服务,请添加对AddLambdaMessageProcessor
的调用。如果预期 Lambda 函数会发布消息,也可以配置发布者。
[LambdaStartup]
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddAWSMessageBus(builder =>
{
builder.AddMessageHandler<OrderHandler, OrderInfo>();
builder.AddLambdaMessageProcessor(options =>
{
options.MaxNumberOfConcurrentMessages = 4;
});
});
}
}
在 Lambda 函数本身中,您需要注入ILambdaMessaging
服务。此服务为 Lambda 函数提供了一个入口点,用于传递 Lambda 服务发送的SQSEvent
。如果您的 Lambda 函数已配置为支持部分失败响应,请使用ProcessLambdaEventWithBatchResponseAsync
并返回SQSBatchResponse
实例。如果不启用部分失败响应,则使用ProcessLambdaEventAsync
方法。
public class Function
{
[LambdaFunction(Policies = "AWSLambdaSQSQueueExecutionRole")]
public async Task<SQSBatchResponse> FunctionHandler([FromServices] ILambdaMessaging messaging, SQSEvent evnt, ILambdaContext context)
{
return await messaging.ProcessLambdaEventWithBatchResponseAsync(evnt, context);
}
}
选项
在调用AddLambdaMessageProcessor
时,以下选项可用于配置框架。
- MaxNumberOfConcurrentMessages:Lambda 函数一次将处理的最多消息数量。默认值为
10
。 - DeleteMessagesWhenCompleted:当没有使用 Lambda 的部分响应失败时,如果此选项设置为
true
,则在每个消息成功处理后,框架将删除该消息。默认值为false
,这意味着如果函数调用的执行成功,则 Lambda 服务将删除 Lambda 事件中的所有消息。如果函数已配置为支持部分响应失败,则忽略此属性。
有用的链接
- AWS 消息处理框架(适用于 .NET)设计文档
- 示例应用程序 - 包含发布者服务、长运行订阅者服务、Lambda 函数处理程序以及使用 Polly 覆盖框架内置回退逻辑的示例。
- 开发人员指南
- API 参考
- 介绍 AWS 消息处理框架(适用于 .NET)预览博客文章 - 演示如何创建简单应用程序来发送和接收 SQS 消息。
安全
参见CONTRIBUTING以获取更多信息。
许可证
本项目采用 Apache-2.0 许可协议。
产品 | 版本 兼容的以及额外的计算目标框架版本。 |
---|---|
.NET | 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 已计算。 |
-
net6.0
- Amazon.Lambda.Core (>= 2.2.0)
- Amazon.Lambda.SQSEvents (>= 2.2.0)
- AWS.Messaging (>= 0.9.1)
NuGet 包
此包未由任何 NuGet 包使用。
GitHub 存储库
此包未由任何流行的 GitHub 存储库使用。
版本 | 下载 | 上次更新 |
---|---|---|
0.10.0 | 141 | 8/2/2024 |
0.9.1 | 1,429 | 4/22/2024 |
0.9.0 | 2,195 | 3/26/2024 |
0.1.1-beta | 68 | 3/20/2024 |
0.1.0-beta | 180 | 12/8/2023 |