如何通过 AWS Lambda 使用 pysftp 连接 EC2,无需 .pem 文件或替代 .pem 文件

2024-03-17

我想通过 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(使用前将#替换为@)

如何通过 AWS Lambda 使用 pysftp 连接 EC2,无需 .pem 文件或替代 .pem 文件 的相关文章

随机推荐