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