Как обеспечить совместимость между моей локальной средой разработки и средой выполнения 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-архив, а затем загружает на уровень лямбда.
Однако, когда я пытаюсь запустить свою лямбду, я получаю сообщение об ошибке, что некоторые файлы из криптографии отсутствуют.
Я отладил это, проверив, доступен ли пакет для лямбды и какие пути имеют эти файлы, которые отсутствуют. Я сверил их с сообщением об ошибке, и все файлы доступны в правильных местах.
Из некоторых исследований Google я теперь предполагаю, что версия криптографии, которую я устанавливаю локально через pip, несовместима. с помощью среды выполнения лямбда и afaik pip устанавливает разные файлы в зависимости от того, на какой ОС вы работаете. В своих первых попытках я использовал Alpine (официальный докер-контейнер Python), а теперь перешел на контейнер, основанный на лямбда-образе AWS Python. Я предполагал, что когда я объединяю пакеты, установленные в этой среде, они будут совместимы с AWS Lambda. Но я по-прежнему получаю то же сообщение об ошибке.
В настоящее время у меня нет идей, как решить эту проблему или что еще может быть.
Я предполагаю, что развертывание лямбда-кода и пакеты через AWS CDK — очень распространенная практика, но, используя Google, AWS Docs и LLM, мне не удалось найти решение или рабочий пример.

Подробнее здесь: https://stackoverflow.com/questions/790 ... ambda-runt

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