选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

有关 Lambda 的常见问题解答

聚焦模式
有关 Lambda 的常见问题解答 - AWS Lambda

在许多情况下,将功能分成不同的函数可以提供更好的性能,还可以使应用程序更易于维护和扩展。但是,Lambda“单体”可能是迁移现有应用程序的有用垫脚石。

单一 Lambda 函数应包含多少功能?

该函数应在微服务中跨 AWS 服务的数据流中执行单一任务。但是,如果功能任务太小,则可能会在应用程序中引起额外的延迟,并导致大量函数的管理开销。函数的确切范围由使用案例确定。

基于 Lambda 的应用程序能否在多个区域运行?

是,许多无服务器服务都为多个区域提供复制和支持,包括 DynamoDB 和 Amazon S3。作为部署管线的一部分,Lambda 函数可以部署在多个区域,并且 API Gateway 可以配置为支持此配置。请参阅此示例架构,其展示了如何实现这一点。

Lambda 函数能否按定时计划运行?

是,您可以使用 EventBridge 中规则的计划表达式来触发 Lambda 函数。此格式使用 cron 语法,可以设置为一分钟的粒度。有关示例,请参阅此教程

Lambda 函数如何在两次调用之间保留状态?

在许多情况下,DynamoDB 表是理想的保留方式,因为它提供低延迟的数据访问,且可以随着 Lambda 服务进行扩展。如果您正在使用此服务,则可以将数据存储在 Amazon EFS for Lambda 中,这样可以实现对文件系统存储的低延迟访问。

什么类型的工作负载适合事件驱动型架构?

事件驱动型架构使用网络在不同的系统之间进行通信,这会引入可变的延迟。对于需要非常低延迟的工作负载(例如实时交易系统),此设计可能不是最佳选择。但是,对于高度可扩展和可用的工作负载,或者流量模式不可预测的工作负载,事件驱动型架构可以提供满足这些需求的有效方法。

为什么 Lambda 服务的函数限制为 15 分钟?

Lambda 函数用于处理事件,而且大多数事件的处理速度非常快 – 通常大多数生产调用不到 1 秒。函数的持续时间是由处理一个事件所花费的时间决定的。虽然有些计算密集型工作负载可能需要几分钟才能完成,但极少数工作负载会需要 15 分钟才能完成。

如果发现需要更长的持续时间,则请确保您的函数代码正在处理单一事件、执行单一任务,并使用本文档中概述的最佳实践。在许多情况下,可以重新设计函数,来处理单一事件并减少处理所需的时间。

为什么具有预留并发的函数无法扩展来满足传入流量?

Lambda 函数的预留并发也会充当最大容量值。提高总并发的软限制不会对此行为造成影响。如果需要具有预留并发的函数来处理更多流量,则可以更新预留并发值,从而提高函数的最大吞吐量。

为什么具有预置并发的函数仍然会出现冷启动?

您可以通过向函数添加 X-Ray 监控,来测量随着 Lambda 纵向扩展的冷启动。使用预置并发的函数不会表现出冷启动行为,因为执行环境是在调用之前准备好的。但是,预置并发必须应用于函数的特定版本或别名,而不是 $LATEST 版本。如果继续看到冷启动行为,则请确保您调用的是配置了预置并发的别名版本。

我的 Lambda 函数最适合使用的运行时是什么?

Lambda 与您所选择的运行时无关。对于简单函数,Python 和 Node.js 等解释性语言提供最快的性能。对于计算更复杂的函数,Java 等编译语言通常初始化速度较慢,但​​在 Lambda 处理程序中运行速度很快。运行时的选择也受开发人员偏好和语言熟悉度影响。

如何确保 SDK 版本不更改?

随着 AWS 发布新服务和功能,嵌入式 SDK 可能会更改,恕不另行通知。您可以通过创建具有所需特定版本的 Lambda 层锁定 SDK 版本。然后,即使服务中嵌入的版本更改,该函数也始终使用层中的版本。

如何测试基于 Lambda 的应用程序能否扩展来满足预期流量?

为确保应用程序按预期扩展,请在开发过程中使用负载测试来模拟预期的流量级别。

哪些工作负载适合预置并发?

预置并发旨在使函数具有两位数毫秒的响应时间。通常,交互式工作负载从该功能中获益最大。这些是用户发起请求的应用程序(例如 Web 和移动应用程序),并且对延迟最敏感。异步工作负载(例如数据处理管线)经常对延迟不太敏感,因此通常不需要预置并发。

为什么 Lambda 函数未记录任何输出?

如果 Lambda 函数未记录到 CloudWatch,请首先确保调用方正在调用该函数。检查调用服务的日志以及表示事件已触发该函数的任何 CloudWatch 指标。接下来,检查 CloudWatch Logs 中是否有该函数。所有 Lambda 函数都会记录三行,即使函数的自定义代码中没有其他显式日志记录也是如此:

安全运营图 7

如果尽管调用了该函数,但 CloudWatch 中没有出现任何日志记录,请检查该函数的权限。IAM 角色必须包含日志权限,否则该函数无法向服务写入日志。您可以将 AWSLambdaBasicExecutionRole 策略附加到函数的执行角色,以授予这些权限。

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。