如何使用Python在AWS lambda中设置环境变量

时间:2017-11-06 01:10:34

标签: python amazon-web-services aws-lambda

我正在尝试使用python

在AWS lambda中设置环境变量

最初我有一个环境变量stackname,在lambda配置中没有值。

def lambda_handler(event, context):
    if os.environ["stackname"]:
        print("Not empty")
        print(os.environ["stackname"])
    else:
        print("its empty")
        os.environ["stackname"]="mystack"
        print(os.environ["stackname"])

现在我在这里看到奇怪的间歇性行为,我希望打印的第一个

its empty
mystack

并且每当我执行lambda时,它应该打印

Not empty
mystack

最初几次打印

Not empty
mystack

但是经过几次或更多的处决后,lambda打印下面很奇怪。

  its empty
    mystack

请建议这是否是设置环境变量以提供一致输出的任何其他更好方法。

3 个答案:

答案 0 :(得分:8)

AWS Lambda函数在Amazon Linux环境中运行。相同Lambda函数的顺序调用可能导致函数在相同环境或不同环境中运行。环境我的意思是计算机,容器等。

这意味着您无法可靠地设置环境变量并期望它们在下次调用时存在。

更好的方法是将运行时变量存储在持久存储中,例如DynamoDB。

答案 1 :(得分:0)

您可以像使用os在系统中一样进行操作

 import os
 os.environ['varible']='value'

答案 2 :(得分:-1)

为什么不只使用lambda提供的environment variable support?您可以在创建或更新函数时配置环境变量,然后在函数代码中引用这些变量。关于为什么打印出“空白”的问题,@ John Hanley的答案非常准确。