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

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

Сообщение Anonymous »

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

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

        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"
)
Этот слой используется для общих зависимостей, которые разделяют большинство моих лямбда-выражений. Одним из них является пакет шифрования. Я устанавливаю все пакеты из файла require.txt в «layer_code_directory». CDK (afaik) упаковывает их в zip-архив, а затем загружает на уровень лямбда.
Однако, когда я пытаюсь запустить свою лямбду, я получаю сообщение об ошибке, что некоторые файлы из криптографии отсутствуют:
Runtime.ImportModuleError: невозможно импортировать модуль «MyAuthorizer»: /opt/python/cryptography/hazmat/bindings/_rust.abi3.so: невозможно открыть общий объект файл: такого файла или каталога нет
Я отладил это, проверив, доступен ли пакет для лямбды и какие пути имеют эти файлы, которые отсутствуют. Я сверил их с сообщением об ошибке, и все файлы доступны в правильных местах.
Из некоторых исследований Google я теперь предполагаю, что версия криптографии, которую я локальная установка через pip несовместима со средой выполнения лямбда, и afaik pip устанавливает разные файлы в зависимости от того, на какой ОС вы работаете. В своих первых попытках я использовал Alpine (официальный докер-контейнер Python), а теперь перешел на контейнер, основанный на лямбда-образе AWS Python. Я предполагал, что когда я объединяю пакеты, установленные в этой среде, они будут совместимы с AWS 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»