1

我正在尝试将文件传输到远程服务器,为此我正在使用paramiko库。通过在本地运行 python 脚本,我能够成功地将文件传输到远程服务器。我正在使用的脚本如下:

import paramiko
ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(hostname='my-host-name',username='myid',password='mypwd')
sftp_client=ssh.open_sftp()
#passing localpath, remotepath
sftp_client.put(r'C:\Users\test.csv', r'/dev/data/team/test.csv')
sftp_client.close()
ssh.close()

我需要在 AWS Lambda 上运行这个脚本。但是,当我在 AWS Lambda 上运行此脚本时,它给了我以下错误。

在此处输入图像描述

根据 Paramiko 文档,它几乎没有直接依赖关系,bcrypt就是其中之一。

我通过上传包含所有相关模块的 zip 文件创建了一个 Lambda 层(pip install paramiko -t 。),并且还按照 python3.7 要求遵循了文件夹结构(python/lib/python3.7/site-packages /)

我在网上做了很多研究,但没有找到可以解决问题的解决方案。

请帮我!

4

1 回答 1

4

这通常有两个原因:

要么您没有正确命名处理程序名称,在这种情况下,请转到 Lambda -> Functions -> Your Function -> Configuration 并检查处理程序字段中的值是否正确。

或者您包含在压缩文件中的依赖项之一被编译到您机器的架构中,这通常与托管 lambda 函数的架构不同。在这种情况下,您应该找出托管 lambda 函数的 Linux 版本,并获得可供 AWS lambda 使用的预编译版本。

于 2020-07-24T19:54:11.523 回答