Estoy usando AWS Lambda y las funciones que necesito implementar requieren muchos paquetes diferentes. Con serverless-python-requirements el archivo zip que se genera es de 169,5 MB, mucho más que el límite de 50 MB. He intentado usar Lambda Layers, pero esto no resuelve el problema del tamaño.
También intenté volcar el archivo zip en un cubo s3, pero todavía es demasiado grande para cargarlo cuando invoco la función. Necesito todos estos paquetes y no estoy seguro de cómo puedo implementarlos todos.
Mi archivo requirements.txt se ve así:
bs4==0.0.1 gensim==3.8.3 matplotlib==3.2.2 nltk==3.5 numpy==1.19.0 openpyxl==3.0.4 pandas==1.0.5 pyLDAvis==2.1.2 spacy==2.3.1 XlsxWriter==1.2.9Hace muy poco, AWS anunció el soporte de EFS para Lambda. Lea el anuncio aquí . EFS o Elastic File System es el sistema de archivos NFS para los nodos de cómputo. Lea más sobre ellos aquí .
Con esto, ahora puede conectar esencialmente un almacenamiento de red a su función lambda. Personalmente, lo he usado para cargar archivos de referencia enormes que están por encima del límite del almacenamiento de archivos de Lambda. Para ver un tutorial, puede consultar este artículo de AWS. Para elegir la conclusión del artículo:
EFS para Lambda le permite compartir datos entre invocaciones de funciones, leer archivos de datos de referencia de gran tamaño y escribir resultados de funciones en un almacén persistente y compartido. Después de configurar EFS, proporciona a la función Lambda un ARN de punto de acceso, lo que le permite leer y escribir en este sistema de archivos. Lambda conecta de forma segura las instancias de función a los destinos de montaje de EFS en la misma zona de disponibilidad y subred.