AWS Lambda 支持 .NET 的 Powertools 以简化可观测性

AWS Lambda Powertools 支持 .NET

AWS 最近宣布开源库 Lambda Powertools 现在支持 .NET。该开发者库帮助在基于 .NET 6 或更高版本的 Lambda 函数中实现可观测性,减少自定义代码量。

主要功能

Powertools for .NET 在 AWS SDK 和其他托管服务之上提供抽象,帮助开发者将 Well-Architected Serverless 的可观测性最佳实践融入 .NET Lambda 代码中。该库包括三个核心功能:

  • Tracing:分布式跟踪,将跟踪信息发送到 AWS X-Ray
  • Logging:输出结构化 JSON 的日志记录器。
  • Metrics:使用 CloudWatch Embedded Metric Format 异步捕获指标。

目前,Powertools 支持用 C# 编写的 Lambda 函数,运行时版本为 .NET 6 及以上。

实现与部署

AWS 高级解决方案架构师 Amir Khairalomoum 展示了如何使用 Serverless Application Model 实现可观测性并管理部署。他指出,AWS Lambda Powertools for .NET 工具作为 NuGet 包提供,每个核心功能有单独的 NuGet 包(AWS.Lambda.Powertools.Logging, AWS.Lambda.Powertools.Metrics 和 AWS.Lambda.Powertools.Tracing),开发者可以根据需要添加,从而减小 Lambda 包的大小,提高性能。

例如,Logging 从 Lambda 上下文中捕获关键字段、冷启动,并将日志输出结构化为 JSON。它支持采样,可以为一定比例的请求启用 DEBUG 日志级别。要在应用程序中实现结构化日志记录,开发者应将 Powertools 日志库添加到项目中,并通过 NuGet 库、Visual Studio 编辑器或 .NET CLI 命令安装包:

dotnet add package AWS.Lambda.Powertools.Logging

Serverless Land 上,提供了标准化 函数日志自定义指标跟踪 的代码片段。

开发者需求与多语言支持

这是开发者 长期以来的需求,新版本 .NET 的 Powertools 紧随 PythonJavaTypeScript 版本的发布。TracingLoggingMetrics 包在所有语言中均可用,而其他工具如幂等性或批处理则根据每种语言和开发者需求而定。

Accenture 的无服务器应用架构师 Michael Walmsley 评论道:

为什么这很重要?它实现了真正的多语言开发,具有一致的日志输出,这对于实现更简单的可观测性至关重要。标准化有助于这些工具的协作,使更多团队能够协作并满足他们的需求!

Powertools for .NET 的 文档 和源代码可在 GitHub 上获取。

阅读 25
0 条评论