aws sam build not able to build packages which require paramiko due to "Error: PythonPipBuilder:ResolveDependencies"

aws sam build not able to build packages which require paramiko due to "Error: PythonPipBuilder:ResolveDependencies"

我一直在学习 AWS SAM 的使用方法,并成功部署了多个 lambda 以及依赖项和其他 AWS 服务。但是,在尝试部署依赖于某些特定依赖项的 lambda 时,我似乎遇到了 运行 问题。

这是我的 requirements.txt 文件:

paramiko==2.4.2
cryptography==2.6.1
bcrypt==3.1.6
pynacl==1.3.0

此文件位于 "packageRoot/myCodeUri/requirements.txt"

当我 运行 sam 构建时,我收到以下错误:

2019-08-27 11:18:18 Running PythonPipBuilder:ResolveDependencies

Build Failed
Error: PythonPipBuilder:ResolveDependencies - {pynacl==1.3.0(wheel), cryptography==2.6.1(wheel), bcrypt==3.1.6(wheel)}

已报告此(或至少类似的)错误:here 8 个月前,但目前未得到答复。

P.S。我最初只用 paramiko 尝试过这个,因为据我所知,这是我的脚本使用的唯一库;在构建过程中应该自动引入依赖项,但这也不起作用。

有什么帮助会很好吗?

我已经设法找到一种解决方法,可以在交互模式下使用 docker 容器构建和部署需要 paramiko 库的 lambda。遇到同样问题的人看看here

我在 运行 sam build 时遇到另一个依赖项的相同错误。我能够通过在我们的 python(或 venv)环境中安装 wheel 来解决这个问题。

pip install wheel

此方法不需要 --use-container 标志,而 运行 sam build

安装 wheel 对我不起作用,但是升级 pip 却起作用了。

python -m pip install --upgrade pip

我在尝试使用 simplejson 库时遇到了这个问题。添加它是为了解决序列化问题...(pip wheel 和升级没有帮助),我只是删除了库并处理了数据库查询中的序列化问题)