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

问题描述 投票:-2回答:2

我想从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函数时如何更新该值?

python-3.x amazon-web-services aws-lambda
2个回答
0
投票

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

If平台支持os.putenv(key, value)功能,此映射可用于修改环境以及查询环境。


0
投票

看来您的目标是存储一些信息,这些信息在下次执行该功能时可供Lambda函数访问。

(大多数情况下)可以简单地通过使用global variable而不是环境变量来完成。只需在处理程序函数外部定义一个变量,该变量在以后执行该函数时就可以访问。

但是:

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.