AWS.Lambda.Powertools.BatchProcessing 1.1.1

前缀已预留
dotnet add package AWS.Lambda.Powertools.BatchProcessing --version 1.1.1                
NuGet\Install-Package AWS.Lambda.Powertools.BatchProcessing -Version 1.1.1                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用了 NuGet 模块的 Install-Package 版本。
<PackageReference Include="AWS.Lambda.Powertools.BatchProcessing" Version="1.1.1" />                
对于支持 PackageReference 的项目,将此 XML 节点复制到项目文件中即可引用此包。
paket add AWS.Lambda.Powertools.BatchProcessing --version 1.1.1                
#r "nuget: AWS.Lambda.Powertools.BatchProcessing, 1.1.1"                
#r 指令可以在 F# Interactive 和 Polyglot Notebooks中使用。将此复制到交互式工具或脚本的源代码中,以引用此包。
// Install AWS.Lambda.Powertools.BatchProcessing as a Cake Addin
#addin nuget:?package=AWS.Lambda.Powertools.BatchProcessing&version=1.1.1

// Install AWS.Lambda.Powertools.BatchProcessing as a Cake Tool
#tool nuget:?package=AWS.Lambda.Powertools.BatchProcessing&version=1.1.1                

AWS.Lambda.Powertools.BatchProcessing

批量处理实用工具在处理来自 Amazon SQS、Amazon Kinesis Data Streams 和 Amazon DynamoDB Streams 的批量时处理部分失败。

主要功能

  • 报告批量项失败以减少出错时记录的重试次数
  • 简单的接口以处理每个批量记录
  • 自带批量处理器
  • 并行处理

后台

当使用 SQS、Kinesis Data Streams 或 DynamoDB Streams 作为 Lambda 事件源时,您的 Lambda 函数会触发一个消息批次。

如果您的函数无法处理批量中的任何消息,则整个批次将返回到您的队列或流。该批次然后会重试,直到以下情况之一发生:a) 您的 Lambda 函数返回成功的响应,b) 记录达到最大重试次数,或 c) 记录过期。

当您在 Lambda 函数事件源配置中启用“报告批量项失败”功能时,此行为会发生变化。

  • SQS队列。只有标记为失败的消息会返回队列进行重试,而成功消息将被删除。
  • Kinesis数据流DynamoDB流。单次报告的失败将使用其序列号作为流检查点。多次报告的失败将使用最低序列号作为检查点。

阅读文档

要获取完整功能列表,请访问docs.powertools.aws.dev/lambda/dotnet/utilities/batch-processing/

GitHub: https://github.com/aws-powertools/powertools-lambda-dotnet/

示例函数

在此处查看完整示例:github.com/aws-powertools/powertools-lambda-dotnet/tree/develop/examples/BatchProcessing

[BatchProcessor(RecordHandler = typeof(CustomSqsRecordHandler))]
public BatchItemFailuresResponse HandlerUsingAttribute(SQSEvent _)
{
    return SqsBatchProcessor.Result.BatchItemFailuresResponse;
}

public class CustomSqsRecordHandler : ISqsRecordHandler
{
    public async Task<RecordHandlerResult> HandleAsync(SQSEvent.SQSMessage record, CancellationToken cancellationToken)
    {
        /*
            Your business logic. 
            If an exception is thrown, the item will be marked as a partial batch item failure.
        */
        
        var product = JsonSerializer.Deserialize<JsonElement>(record.Body);

        if (product.GetProperty("Id").GetInt16() == 4)
        {
            throw new ArgumentException("Error on 4");
        }

        return await Task.FromResult(RecordHandlerResult.None);
    }
}
产品 兼容和额外的计算目标框架版本。
.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标准的信息。

NuGet软件包

此包没有被任何NuGet软件包使用。

GitHub仓库 (1)

显示依赖AWS.Lambda.Powertools.BatchProcessing的前1个流行的GitHub仓库

仓库 星标
aws-powertools/powertools-lambda-dotnet
Powertools是一个开发者工具包,用于实现无服务器最佳实践并提高开发速度。
版本 下载 最后更新时间
1.1.1 2,117 3/10/2024
1.1.0 1,886 2/16/2024
1.0.0 1,398 12/12/2023
0.0.1-preview 651 9/20/2023