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                
此命令旨在在Visual Studio的包管理器控制台中使用,因为它使用了NuGet模块的Install-Package版本。
<PackageReference Include="AWS.Messaging.Lambda" Version="0.10.0" />                
对于支持PackageReference的项目,将此XML节点复制到项目文件中以引用包。
paket add AWS.Messaging.Lambda --version 0.10.0                
#r "nuget: AWS.Messaging.Lambda, 0.10.0"                
#r指令可用于F# Interactive和Polyglot Notebooks。将其复制到交互式工具或脚本的源代码中,以引用包。
// 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消息处理框架

nuget downloads

注意: 此库处于开发者预览版。它提供了对即将到来的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 事件中的所有消息。如果函数已配置为支持部分响应失败,则忽略此属性。

安全

参见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 已计算。
兼容目标框架
包含目标框架(在包中)
了解有关 目标框架.NET Standard 的更多信息。

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