在python AWS lambda中使用aws加密SDK

时间:2018-06-17 15:20:16

标签: python amazon-web-services aws-lambda

我尝试使用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

2 个答案:

答案 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

希望这会有所帮助。