【发布时间】:2019-01-31 18:30:42
【问题描述】:
我正在使用 AWS lambda 提供服务。我正在使用 PyCryptodome 进行加密和解密。我可以在本地测试我的应用程序,但是当我上传到 AWS lambda 进行解密时。我得到的错误是
模块初始化错误:无法加载本机模块“Crypto.Cipher._raw_ecb”:尝试“_raw_ecb.cpython-36m-x86_64-linux-gnu.so”:/var/task/Cryptodom/Util/../Cipher/ _raw_ecb.cpython-36m-x86_64-linux-gnu.so:无法打开共享对象文件:没有这样的文件或目录,正在尝试“_raw_ecb.abi3.so”:/var/task/Cryptodome/Util/../Cipher/_raw_ecb .abi3.so:无法打开共享对象文件:没有这样的文件或目录,正在尝试“_raw_ecb.so”:/var/task/Cryptodome/Util/../Cipher/_raw_ecb.so:无效的 ELF 标头
我的解密代码是
def blowfish_decrypt(enc):
secret_key = b"somestring"
iv = b"somerandomiv"
logger.info("in the decrypter")
crypt_obj = bf_cbc.new(secret_key, bf_cbc.MODE_CBC, IV=iv)
original = crypt_obj.decrypt(base64.b64decode(enc))
original = original.decode("utf-8")
logger.info("decrypted")
return original
我在关注资源:https://github.com/pyinstaller/pyinstaller/issues/2125,但这对我也没有帮助。
在应用指定的所有详细信息后,我得到了与上述相同的错误。
【问题讨论】:
-
您是如何构建库以及如何部署 Lambda 的?
-
我将 lambda 函数和所需的库打包成一个 zip,然后将其上传到 AWS lambda。使用
pip install pycryptodome -t .,将库收集在 lambda 函数所在的同一文件夹中。
标签: python-3.x amazon-web-services aws-lambda