首页 > 解决方案 > AWS Lambda:一次执行的变量值被保留并供后续运行使用

问题描述

我有一个问题 aws lambda python。我在 lambda 层中定义了一个变量,当我们对该代码进行多次调用时,一次执行的变量值将被保留并供后续运行使用。

有没有办法让每个 lambda 执行来重置所有变量,而不是使用之前运行的任何变量值。

标签: pythonamazon-web-servicesvariablesaws-lambda

解决方案


我怀疑这与 Lambda 层无关,而与容器重用(Lambda 的一个性能特征)有关。在处理程序函数之外声明的任何内容都将在热重启后持续存在。

有关更多信息,请参阅AWS Lambda 执行上下文

测试冷/热启动和重置环境的一种可能方法如下:

import json
import logging

cache = {}
cold_start = True

def handler(event, context):
    global cold_start

    if cold_start:
        print("Cold start")
        cold_start = False
    else:
        print("Warm start, reset cache")
        cache = {}

    # do work here
    cache['name'] = 'Jason'
    cache['age'] = 27

推荐阅读