Как обеспечить совместимость моей локальной среды разработки и среды выполнения AWS Lambda (AWS CDK V2)Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как обеспечить совместимость моей локальной среды разработки и среды выполнения AWS Lambda (AWS CDK V2)

Сообщение Anonymous »

В настоящее время у меня возникла проблема с пакетами Python в AWS Lambda.
Я определил слой Lambda следующим образом:

Код: Выделить всё

        my_layer = _lambda.LayerVersion(
self, "MyLayer",
code=_lambda.Code.from_asset("layer_code_directory"),
compatible_runtimes=[_lambda.Runtime.PYTHON_3_12],
description="Lambda Layer for common dependancies"
)
Этот слой используется для общих зависимостей, которые разделяют большинство моих Lambdas. Одним из них является пакет шифрования. Pip устанавливает все пакеты из файла require.txt в «layer_code_directory». CDK (afaik) упаковывает их в zip-архив, а затем загружает на уровень лямбда.
Однако, когда я пытаюсь запустить Lambda, я получаю сообщение об ошибке, что некоторые файлы из криптографии отсутствуют:
Runtime.ImportModuleError: невозможно импортировать модуль «MyAuthorizer»: /opt/python/cryptography/hazmat/bindings/_rust.abi3.so: невозможно открыть общий объект файл: такого файла или каталога нет
Я отладил это, проверив, доступен ли пакет для Lambda и какие пути имеют эти файлы, которые отсутствуют. Я сверил их с сообщением об ошибке, и все файлы доступны в правильных местах.
Из некоторых исследований Google я теперь предполагаю, что версия криптографии, Я устанавливаю локально через pip, который несовместим со средой выполнения лямбда, и, черт возьми, pip устанавливает разные файлы в зависимости от того, на какой ОС вы работаете.
При первых попытках я работал на Alpine ( Официальный докер-контейнер Python), и теперь я перешел на контейнер, основанный на AWS Python, Lambda и Image. Я предполагал, что когда я объединяю пакеты, установленные в этой среде, они будут совместимы с AWS Lambda. Но я по-прежнему получаю то же сообщение об ошибке.
Как решить эту проблему или что еще может быть?
Я предполагаю, что развертывание кода Lambda и пакеты через AWS CDK — очень распространенная практика, но используются Google, AWS, Docs и LLM.
Мне не удалось найти решение или рабочий пример.

Подробнее здесь: https://stackoverflow.com/questions/790 ... ambda-runt
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»