代码之家  ›  专栏  ›  技术社区  ›  KOT

在python AWS lambda中使用AWS加密SDK

  •  2
  • KOT  · 技术社区  · 8 年前

    我尝试使用AWS加密库在AWS lambda(使用python)中使用KMS密钥加密/解密数据。但是,在运行lambda时会出错(抱怨找不到共享lib,稍后将使用确切的lib进行更新)。我猜SDK使用的是未安装在AWS lambda环境中的共享lib。

    这是我使用的SDK: https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/python.html

    在构建包时,我正在执行pip安装AWS加密SDK和加密。

    谁能给我指点一下怎么修?

    更新:

    以下是错误消息:

    Unable to import module 'lambdaMain': libffi-d78936b1.so.6.0.4: cannot open shared object file: No such file or directory

    2 回复  |  直到 7 年前
        1
  •  1
  •   FelixEnescu    8 年前

    这个 aws-encryption-sdk requires 密码库:

    SDK需要所有平台上的加密库。全部 PIP版本在Windows上安装并构建加密库。 PIP8.1及更高版本在Linux上安装和构建加密。如果你 正在使用早期版本的PIP,而您的Linux环境没有 拥有构建密码库所需的工具,您需要 安装它们。有关详细信息,请参见 Linux。

    lambda环境似乎没有所需的库,因此需要添加它们。

    不幸的是,米塞罗 lambda-packages 没有,所以需要编译自己。

    成对指针:

        2
  •  0
  •   InsidiousMike    7 年前

    我在尝试打包libs/需求时遇到了多个问题,下面是解决问题的步骤:

    1)使用AmazonLinuxAMI创建一个新的EC2实例

    2)安装任何要求 sudo yum install python36 python36-virtualenv python36-pip -y

    3)使用python3创建新的虚拟环境 virtualenv -p python3 .

    4)使用PIP3安装任何要求 pip3 install aws_encryption_sdk

    5)必须添加lib和lib64中的所有内容(包括隐藏文件)

    zip -r -9 /tmp/export.zip lib64/python3.6/site-packages/* lib64/python3.6/site-packages/.*
    zip -r -9 /tmp/export.zip lib/python3.6/site-packages/* lib/python3.6/site-packages/.*
    zip -r -9 /tmp/export.zip main.py   
    

    希望这有帮助。