我有一个连接到数据库的 Python 应用程序,我希望数据库凭据在本地环境(用于测试)或 lambda 函数(用于生产)中运行时有所不同。
有什么方法可以从 Python 应用程序检测它是否在 lambda 函数内运行?
编辑2:
感谢 @MarkB 提供有关自定义运行时新功能的更新。
该方法:
某些环境变量的值是在 AWS 中运行代码时设置的。检查此类变量是否存在将表明代码正在 AWS 中运行。
然而,由于我之前的新功能AWS_EXECUTION_ENV
环境变量并非在所有情况下都起作用。从这里的文档https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html The AWS_EXECUTION_ENV environment variable is not defined for custom runtimes
,这意味着在使用自定义运行时时检查其存在并不能表明代码是否在 AWS 上运行。
可以检查其中之一是否存在AWS_*
特定的环境变量(参见上面的链接)。哪一种适合您可能取决于您的用例。但马克的建议看起来不错!
os.environ.get("AWS_LAMBDA_FUNCTION_NAME") is not None
This works for me The following would work as long as you are using a standard AWS runtime environment
os.environ.get("AWS_EXECUTION_ENV") is not None
编辑:我发现存在context
object 不足以进行此类检查,因为当不在 AWS lambda 函数中运行时您可能会模拟它。话又说回来,您可能也在嘲笑 AWS_EXECUTION_ENV ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)