
亚马逊云科技宣布,在预置模式下,在利用Apache Kafka事件源映射(ESM)时,AWS Lambda原生支持Apache Avro和Protocol Buffers(Protobuf)格式事件。据该公司称,这一增强显著简化了通过直接与流行的模式注册表的集成,包括 AWS Glue Schema Registry (GSR)、Confluent Cloud Schema Registry(CCSR)和自管理的Confluent schema Registry (SCSR),来处理高效的二进制 Kafka 事件。
以前,使用 Avro 和 Protobuf 作为 Kafka 数据的组织,因其紧凑的消息大小、快速的序列化和反序列化以及强大的模式演变而受到重视,必须在 Lambda 函数中编写自定义代码来验证、反序列化和过滤这些事件。有了这个新功能,Lambda 的 ESM 现在可以原生处理这些复杂性,将模式注册中心集成逻辑从应用层移动到托管服务。AWS Lambda 的首席工程师 Rajesh Pandey 在 LinkedIn的帖子中强调了这种简化:
不再需要在函数中连接复杂的反序列化器或处理模式解析。只需配置它,Lambda 就会在代码运行之前处理剩下的工作——模式获取、验证和解码。
内置的集成意味着传入的JSON Schema、Avro 和 Protobuf 记录将根据其注册的模式自动进行验证,这允许开发人员在集中和一致地共享数据模式的同时使用和过滤这些更有效的二进制格式。此外,开发人员现在可以使用 Kafka 的开源 ConsumerRecords 接口构建他们的函数,并且在 AWS Lambda 的Powertools的帮助下,直接访问由 Avro 或 protobuf 生成的业务对象,而无需编写自定义的反序列化代码。
Lambda 函数还可以接收干净的、经过验证的 JSON 数据,而不管原始的序列化格式如何,从而进一步简化了开发。还可以在上游设置事件过滤规则,以便在函数调用之前丢弃不相关的事件,从而优化计算成本。亚马逊云科技无服务器英雄 Yan Cui 在LinkedIn上进一步强调了这一优势,他表示:
但最重要的是,它允许你在 ESM 级别(而不是在你的代码中)过滤事件,因此它应该可以通过减少不必要的 Lambda 调用来节省一些成本。
配置需要启用 Kafka ESM 的预配置模式,并通过亚马逊云科技管理控制台、AWS CLI、SDK 或基础设施即代码(IaC)工具,如 AWS Serverless Application Management(ASM)或 AWSAWS Cloud Development Kit(CDK),指定模式注册表设置(端点、身份验证和验证字段)。正如 Julian Wood 和 Nihar Sheth 在 AWS Compute 博客中所写的那样:
这个新功能适用于 Amazon Managed Streaming for Apache Kafka (Amazon MSK)、Confluent Cloud和自管理的 Kafka 集群。要开始使用,请将现有的 Kafka ESM 更新到预置模式,并添加模式注册表配置,或者在预置模式下创建一个新的 ESM,并启用模式注册表集成。

(来源:亚马逊云科技 博客文章)
ESM 通过检测更新的模式 id 和获取最新的定义来自动处理模式演变。对于错误处理,可以将验证或反序列化失败的事件路由到配置的故障目的地,如 Amazon SQS、SNS 或 S3,以进行调试。
AWS Lambda 中的 Apache Avro 和 Protocol Buffers (Protobuf)格式事件通常在 AWS Lambda Kafka ESM 可用的所有亚马逊云科技商业区域中可用,除了以色列(特拉维夫),亚太地区(马来西亚)和加拿大西部(卡尔加里)。
原文链接:
https://www.infoq.com/news/2025/06/aws-lambda-avro-protobuf-kafka/
评论