如何解决Python Lambda找不到此类文件或目录的运行时问题
我有一个lambda函数,该函数返回一个错误,提示找不到该文件或目录。
为清楚起见,下图显示了我的lambda中存在的文件结构,而且很显然,我要查找的目录确实存在。
My current file structure in the lambda function
我收到的错误消息:
[ERROR] FileNotFoundError: [Errno 2] No such file or directory: 'config'
Traceback (most recent call last):
File "/var/task/lambda_function.py",line 23,in lambda_handler
os.chdir("config")
下面是lambda_handler:
import os
import json
def lambda_handler(event,context):
print(event)
os.chdir("config")
loginInfo = json.load(open('secrets.json'))
return loginInfo
我将目录更改为config的原因是为了可以访问我的secrets.json文件。
请让我知道这是否足够重现。
解决方法
以Lambda身份运行与在开发计算机上运行不同。 如果您想阅读配置-您可以选择以下几种方式:
- 环境变量
- 将您的配置文件复制到s3并从那里读取
- 使用AWS参数存储并从那里读取配置,
如果需要在本地运行它,可以检查aws sam cli
。
https://github.com/awslabs/aws-sam-cli
它要求您通过设置lambda函数来定义默认的cloudformation template.yml
。
最后只需执行
sam local invoke -e lambda-event.json
我无视此处发布的详细信息-我确信它们是有价值的-并且继续进行切线讨论,并提及由于您正在处理机密,因此值得投资于未来的证据机密管理政策。
https://dev.to/dvddpl/where-do-you-keep-credentials-for-your-lambda-functions-5dno
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。