Estou tentando importar numpy e scipy em uma função Lambda usando uma camada. Segui os passos descritos aqui: https://www.linkedin.com/pulse/add-external-python-libraries-aws-lambda-using-layers-gabe-olokun/ (que está um pouco desatualizado, mas reflete tudo o que encontrei em outros lugares.)
Este é o erro que estou recebendo:
"Não foi possível importar o módulo 'lambda_function': Erro ao importar o numpy: você não deve tentar importar o numpy do diretório de origem; saia da árvore de origem do numpy e reinicie seu interpretador python a partir daí."
Estou usando Python 3.13
Você pode criar a camada instalando as dependências com diferentes sinalizadores para que os binários compatíveis com o ambiente Lambda sejam incluídos na camada.
Exemplo:
Nesse exemplo, ele instala as coisas em requirements.txt em um diretório chamado "python", que você pode compactar e usar para criar uma camada. Essa abordagem funcionará se seu pip local puder baixar wheels pré-construídos para o que
--platform
você especificar. Mas alguns pacotes como numpy, que não são Python puro, podem não funcionar se você estiver executando-o no Windows ou MacOS.Como alternativa, para uma abordagem à prova de falhas, você pode usar uma das imagens da AWS para criá-lo:
Isso montará seu diretório atual
$PWD
e/var/task
então esse diretório atual se tornará o que você compactará para fazer a camada. Certifique-se de que o arquivo zip contenha um diretório "python" que contenha o que é instalado pelo comando pip.Certifique-se de instalar para o SO e arquitetura corretos. A maneira mais fácil de fazer isso é a plataforma e os sinalizadores only-binary: