【问题标题】:bcrypt does not work on lambda serverlessbcrypt 不适用于 lambda 无服务器
【发布时间】:2019-06-23 02:39:13
【问题描述】:

我添加了 bcrypt 模块,在本地它可以工作,但在我部署时它不起作用 我测试了这个函数并展示了这个:

errorMessage": "/var/task/node_modules/bcrypt/lib/binding/bcrypt_lib.node: invalid ELF header

【问题讨论】:

  • 你最终得到这个工作了吗?我现在遇到了同样的问题。

标签: node.js lambda bcrypt serverless


【解决方案1】:

您需要使用linux环境进行部署。如果您从 Windows 机器部署它,则会发生此错误。

您也可以使用bcryptjs 代替bcrypt

【讨论】:

  • 非常好的答案,使用 bcryptjs 为我解决了。
【解决方案2】:

对于这个问题的 python 版本(我是如何结束的),您需要安装包的 linux 版本(以及它所依赖的 cffi、密码学和 PyNaCl)并自己解压缩。

你可以这样做:

pip download PyNaCl --platform manylinux1_x86_64 --no-deps -d lambda_project/python/lib/python3.8/site-packages
pip download cffi --platform manylinux1_x86_64 --no-deps -d lambda_project/python/lib/python3.8/site-packages
pip download bcrypt --platform manylinux1_x86_64 --no-deps -d lambda_project/python/lib/python3.8/site-packages
pip download cryptography --platform manylinux2014_x86_64 --no-deps -d lambda_project/python/lib/python3.8/site-packages

cd lambda_project/python/lib/python3.8/site-packages
unzip \*.whl
rm *.whl

【讨论】:

  • 你是如何让它工作的?我遇到了 bcrypt 错误并使用无服务器中的 python 打包指南:serverless.com/blog/serverless-python-packaging 如果我像您所做的那样手动构建库,bcrypt 没有正确引用 cffi,所以我得到:无法导入模块'auth':没有模块命名为“_cffi_backend”
  • @ToddAnderson 看起来您发送的链接使用了 docker 容器方法。我没有仔细研究的猜测是您的 docker 容器可能不支持 manylinux 构建并且可能需要不同的构建?我认为使用您链接到的方法,尽管您想信任 docker 容器来提取适当的平台文件?不过我真的不确定。
猜你喜欢
  • 2022-06-24
  • 1970-01-01
  • 2019-11-26
  • 1970-01-01
  • 1970-01-01
  • 2018-10-19
  • 2023-03-23
  • 1970-01-01
  • 2013-06-13
相关资源
最近更新 更多