我正在尝试使用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
请建议这是否是设置环境变量以提供一致输出的任何其他更好方法。
答案 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的答案非常准确。