在 VPC 中运行的 Lambda 函数通过 VPC 端点轮询 SQS 队列,然后计算消息中数值的移动平均值。初步测试显示移动平均值不准确。开发人员如何确保准确的移动平均值?
选择一个答案
点击一个选项来检查您的答案。
正确答案: 将函数的保留并发设置为 1。在函数中计算移动平均值,并将计算出的移动平均值存储在 Amazon ElastiCache 中。.
为什么这是答案
当 Lambda 函数需要维护状态(如移动平均值)时,并发执行会导致数据不一致。将函数的保留并发设置为 1,可以确保在任何给定时间只有一个函数实例在运行,从而避免了并发问题。在函数内部计算移动平均值,并将结果存储在 Amazon ElastiCache(一种内存缓存服务)中,可以确保后续调用能够访问到最新的、准确的移动平均值。 其他选项的问题在于: 修改函数以将传入值存储在 Amazon ElastiCache 中,并在初始化时使用缓存值计算移动平均值:这没有解决并发问题,多个函数实例仍然可能同时写入和读取缓存,导致数据不一致。 将函数的预置并发设置为 1:预置并发是为函数预先分配执行环境,以减少冷启动时间,但它不限制并发执行的数量。如果请求量超过预置并发,Lambda 仍会启动新的实例。 修改函数以将值存储在函数的层中,并在初始化时使用这些存储值计算移动平均值:Lambda 层是用于共享代码和依赖项的,不是用于存储运行时状态的。层中的数据在函数实例之间是共享的,但每次函数调用时,层中的数据都是只读的,并且不会在调用之间持久化。
通过考试 — 无需无休止地寻找答案
将本次考试的所有验证问题和解释集中在一处,节省数小时的准备时间。1,000+ 认证 · 20+ 语言 · 免费开始。
更快通过考试 → 无需银行卡