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
NuGet 团队不提供对此客户端的支持。请联系其 维护者 以获取支持。
#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
NuGet 团队不提供对此客户端的支持。请联系其 维护者 以获取支持。
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已计算。 |
-
net6.0
- Amazon.Lambda.DynamoDBEvents (≥3.1.0)
- Amazon.Lambda.KinesisEvents (≥2.2.0)
- Amazon.Lambda.SQSEvents (≥2.2.0)
- AspectInjector (≥2.8.1)
-
net8.0
- Amazon.Lambda.DynamoDBEvents (≥3.1.0)
- Amazon.Lambda.KinesisEvents (≥2.2.0)
- Amazon.Lambda.SQSEvents (≥2.2.0)
- AspectInjector (≥2.8.1)
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 |