我想通过 AWS Lambda 使用 pysftp 库连接 EC2。我使用下面的代码进行连接。
mysftp = pysftp.Connection(
host=Constants.MY_HOST_NAME,
username=Constants.MY_EC2_INSTANCE_USERNAME,
private_key="./clientiot.pem",
cnopts=cnopts,
)
我已将 .pem 文件与部署包一起放入 AWS Lambda 中。看这个图片:
有时它工作有时不工作,就像有时它说找不到 .pem 文件。
"[Errno 2] No such file or directory: './clientiot.pem'"
怎么处理呢?有什么方法可以安全地访问 .pem 文件或 .pem 文件的数据。
我不想在 AWS lambda 中使用 .pem。
如果您直接使用 Paramiko(pysftp 只是 Paramiko 的一个薄包装),您可以将密钥硬编码到您的代码中,并且不会遇到外部资源的问题:
通过 Paramiko 使用字符串中的密钥进行 SSH/SCP https://stackoverflow.com/q/43958696/850848
要引用 Lambda 任务中的文件,请参阅:
AWS Lambda 读取作为源代码上传的 zip 文件的内容 https://stackoverflow.com/q/39477729/850848
所以这应该有效:
private_key = os.environ['LAMBDA_TASK_ROOT'] + "/clientiot.pem"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)