在python中更新AWS Lambda函数的环境变量

时间:2019-10-23 06:46:31

标签: python-3.x amazon-web-services aws-lambda

我想从AWS Lambda函数更新环境变量。我已经尝试过此代码:

import os


def lambda_handler(event, context):

    call = os.environ["last_call"]
    print (call)
    os.environ["last_call"] = "last update now "
    print (os.environ["last_call"])

重新分配os.environ["last_call"] = "last update now"时,看不到环境变量正在更新。

我知道我想念一些东西。您能否指导我每次调用Lambda函数时如何更新该值?

2 个答案:

答案 0 :(得分:1)

您的目标似乎是存储一些下次执行Lambda函数时可以访问的信息。

这(通常)可以简单地通过使用全局变量而不是环境变量来实现。只需在处理程序函数外部定义一个变量,该变量在以后执行该函数时就可以访问。

但是:

  • 如果函数频繁执行,则AWS Lambda可能会创建多个容器。全局变量将只在其中一个容器内运行,因此并非所有功能都可以访问该值。
  • 如果一段时间未使用某个功能,则可能会损坏容器。这将丢失全局变量。

使用环境变量会遇到相同的问题。

使信息可供Lambda函数的将来执行访问的正确方法是使用某种形式的存储服务,例如DynamoDB,Amazon S3或数据库。

答案 1 :(得分:0)

使用os.putenv(key, value),但要小心:

  

如果平台支持putenv()功能,则此映射可用于修改环境以及查询环境。