AWS Lambda:保存一次执行的变量值并供后续运行使用

Bal*_*ala 5 python variables amazon-web-services aws-lambda

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

有没有办法让每个 lambda 执行重置所有变量而不使用上次运行中的任何变量值。

jar*_*mod 5

我怀疑这与 Lambda Layers 无关,而与容器重用(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
Run Code Online (Sandbox Code Playgroud)

  • 或者,加倍努力并避免有状态的 Lambda 函数 (2认同)