Использование AWS шифрования SDK в Python AWS лямбда

1

Я попытался использовать aws encryption lib для шифрования/дешифрования данных с помощью ключа KMS в AWS Lambda (с использованием python). Тем не менее, я получаю ошибки при запуске лямбды (жалобы на общие библиотеки не найдены, я позже обновлю с помощью точной библиотеки lib). Я предполагаю, что SDK использует общие библиотеки, которые не установлены в среде AWMS lambda.

Это SDK, который я использую: https://docs.aws.amazon.com/encryption-sdk/latest/developer-guide/python.html

При создании моего пакета я делаю pip install aws-encryption-sdk и криптографию.

Любой, кто может дать мне указания, как это исправить?

Обновить:

Вот сообщение об ошибке:

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

Теги:
amazon-web-services
aws-lambda

2 ответа

1
Лучший ответ

Для aws-encryption-sdk требуется библиотека криптографии:

Для SDK требуется библиотека криптографии на всех платформах. Все версии pip устанавливают и строят криптографическую библиотеку в Windows. pip 8.1 и более поздних версий устанавливает и строит криптографию в Linux. Если вы используете более раннюю версию pip, и ваша среда Linux не имеет инструментов, необходимых для создания библиотеки криптографии, вам необходимо их установить. Дополнительные сведения см. В разделе Строительная криптография в Linux.

Кажется, что в среде Lambda нет требуемых библиотек, поэтому вам нужно добавить их.

К сожалению, у lambda-пакетов Miserlou этого нет, поэтому вам нужно скомпилировать себя.

Пара указателей:

  • 0
    Спасибо, проверю!
0

У меня было несколько проблем при попытке упаковывать мои библиотеки/требования и предпринимал шаги, которые решили проблему для меня:

1) Создайте новый экземпляр EC2, используя AMA Amazon Linux AMI

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   

Надеюсь это поможет.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню