我尝试使用aws加密lib在AWS Lambda中使用KMS密钥加密/解密数据(使用python)。但是,我在运行lambda时遇到错误(抱怨找不到共享库,我稍后会用精确的lib更新)。我猜测SDK使用的是未在AWS lambda环境中安装的共享库。
这是我使用的SDK:https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/python.html
在构建我的软件包时,我正在进行pip install aws-encryption-sdk和cryptography。
任何可以指导我如何修复它的人?
更新
以下是错误消息:
Unable to import module 'lambdaMain': libffi-d78936b1.so.6.0.4: cannot open shared object file: No such file or directory
答案 0 :(得分:1)
aws-encryption-sdk
requires加密库:
SDK需要所有平台上的加密库。所有 pip的版本安装并在Windows上构建加密库。 点8.1及更高版本在Linux上安装和构建加密。如果你 正在使用早期版本的pip而你的Linux环境却没有 你需要拥有构建加密库所需的工具 安装它们。有关更多信息,请参阅构建加密 Linux操作系统。
Lambda环境似乎没有所需的库,因此您需要添加它们。
不幸的是,Miserlou的lambda-packages没有它,所以你需要自己编译。
情侣指点:
答案 1 :(得分:0)
尝试打包我的库/需求时遇到了多个问题,以下是为我解决问题的步骤:
1)使用Amazon Linux AMI创建新的EC2实例
2)安装任何要求
TableRow tableRow=new TableRow(context);
tableRow.addView(deposit);
tableRow.addView(purchase);
tableRow.addView(date);
if(tableRow.getParent()!=null){
((ViewGroup)tableRow.getParent()).removeView(tableRow);
}
tableLayout.addView(tableRow, new TableLayout.LayoutParams(
TableLayout.LayoutParams.FILL_PARENT,
TableLayout.LayoutParams.WRAP_CONTENT));
3)使用python3 sudo yum install python36 python36-virtualenv python36-pip -y
4)使用pip3安装任何要求
virtualenv -p python3 .
5)必须同时添加lib和lib64中的所有内容(包括隐藏文件)
pip3 install aws_encryption_sdk
希望这会有所帮助。