Yas*_*ter 4 caching amazon-web-services aws-lambda
我的Lambda函数调用CloudWatch describe-alarms API.然后删除那些警报.我正在使用CloudWatch Cron Event作为触发器.
我的印象是缓存的响应被缓存,即使它们被删除仍然出现.
AWS Lambda中是否有任何缓存系统?
das*_*mug 11
这是你的代码缓存响应.不是Lambda.
要修复它,您必须通过确保在处理程序中调用API 并返回它而不将其存储在处理函数范围之外来修复代码.
为了便于说明,
别
const response = callAnApi()
async function handler(event, context, callback) {
// No matter how many times you call the handler,
// response will be the same
return callback(null, response)
}
Run Code Online (Sandbox Code Playgroud)
做
async function handler(event, context, callback) {
// API is called each time you call the handler.
const response = await callAnApi()
return callback(null, response)
}
Run Code Online (Sandbox Code Playgroud)
Lambda函数代码中的任何声明(在处理程序代码之外,请参阅编程模型)仍然初始化,在再次调用函数时提供额外的优化.例如,如果Lambda函数建立数据库连接,而不是重新建立连接,则在后续调用中使用原始连接.我们建议在代码中添加逻辑,以便在创建连接之前检查连接是否存在.
据我所知,AWS Lambda 中没有缓存机制,
\n\n也就是说,在(成功)请求后,Lambda 创建的容器将被“冻结”,以防止其执行“异步”或“后台”工作。后续请求将重用该容器并将新事件传递给您的函数处理程序。该容器将保留在集群中,准备重用并服务请求,直到它\xe2\x80\x99t空闲太长时间,之后它可能会被完全丢弃。AWS 未指定这些详细信息。
\n\n因为容器等待后续请求,并且分配给它的内存不会每次都神奇地消失,所以我们可以为将来的请求存储数据。(但不推荐)
\n| 归档时间: |
|
| 查看次数: |
4624 次 |
| 最近记录: |