本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Lambda 的最佳实践
Amazon Lambda 函数在容器中运行,容器是一个与其他函数隔离的执行环境。首次运行函数时, Amazon Lambda 会创建一个新容器并开始执行该函数的代码。
Lambda 函数具有对每个调用执行一次的处理程序。该处理程序包含函数的主业务逻辑。例如,显示在 第 4 步:创建并测试一个 Lambda 函数 中的 Lambda 函数具有可处理 DynamoDB 流中记录的处理程序。
您还可以提供只运行一次的初始化代码,即在创建容器之后,但在首次 Amazon Lambda 运行处理程序之前。中显示的 Lambda 函数第 4 步:创建并测试一个 Lambda 函数具有初始化代码,用于在 Node.js JavaScript 中导入软件开发工具包,并为亚马逊 SNS 创建客户端。这些对象只应在处理程序外部定义一次。
函数运行后, Amazon Lambda 可以选择重用容器进行后续函数调用。在这种情况下,您的函数处理程序可能能够重用您在初始化代码中定义的资源。(请注意,您无法控制 Amazon Lambda 保留容器的时间长度,也根本无法控制是否会重用容器。)
对于使用的 DynamoDB 触发器,我们 Amazon Lambda建议使用以下方法:
-
Amazon 服务客户端应在初始化代码中实例化,而不是在处理程序中实例化。这 Amazon Lambda 允许在容器的生命周期内重复使用现有连接。
-
通常,您无需显式管理连接或实现连接池,因为您可以自己 Amazon Lambda 管理连接池。
DynamoDB 流的 Lambda 使用器不能保证一次传输,并且可能导致偶尔出现重复情况。确保您的 Lambda 函数代码是等性的,以防止由于重复处理而出现意外问题。
有关更多信息,请参阅《Amazon Lambda 开发人员指南》中的使用 Amazon Lambda 函数的最佳实践。