如何使用Python在AWS lambda中设置环境变量
我正在尝试使用python在AWS lambda中设置环境变量 最初,我有一个环境变量stackname,在lambda配置中没有值如何使用Python在AWS lambda中设置环境变量,python,amazon-web-services,aws-lambda,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.e
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
但经过几次或多次处决后,兰姆达在下面印了一些奇怪的图案
its empty
mystack
请建议是否有其他更好的方法来设置提供一致输出的环境变量。AWS Lambda函数在Amazon Linux环境中运行。连续调用同一Lambda函数可能会导致该函数在同一环境或不同环境中运行。我所说的环境是指计算机、容器等 这意味着您无法可靠地设置环境变量并期望它们在下次调用时出现
更好的方法是将运行时变量存储在持久性存储中,如DynamoDB。AWS Lambda函数在Amazon Linux环境中运行。连续调用同一Lambda函数可能会导致该函数在同一环境或不同环境中运行。我所说的环境是指计算机、容器等 这意味着您无法可靠地设置环境变量并期望它们在下次调用时出现
更好的方法是将运行时变量存储在持久性存储中,如DynamoDB。为什么不使用lambda提供的?您可以在创建或更新函数时配置环境变量,然后在函数代码中引用这些变量。关于为什么它打印出“它的空”,约翰·汉利的回答相当准确。为什么不使用lambda提供的?您可以在创建或更新函数时配置环境变量,然后在函数代码中引用这些变量。关于为什么它会打印出“它是空的”,约翰·汉利的回答相当准确。你可以像在使用操作系统的系统中那样来做
import os
os.environ['varible']='value'
您可以像在使用操作系统的系统中一样执行此操作
import os
os.environ['varible']='value'
对,约翰汉利。您可以使用环境变量或任何其他持久性存储来缓存昂贵的信息,容器中的第一次运行可以获取这些信息,而容器中的其余运行可以使用这些信息。但是,您不能期望这些信息会出现在后续的任何函数运行中,这些信息可能在不同的容器中,甚至在不同的EC2实例上。对,@JohnHanley。您可以使用环境变量或任何其他持久性存储来缓存昂贵的信息,容器中的第一次运行可以获取这些信息,而容器中的其余运行可以使用这些信息。但是,您不能期望任何后续运行的函数都有这些信息,这些信息可能在不同的容器中,甚至在不同的EC2实例上。您知道有状态和无状态之间的区别吗?您知道有状态和无状态之间的区别吗?