Tarde,
Recientemente me encontré con AWS Lambda y Azure Functions. AWS impone un límite en el tamaño de los archivos comprimidos y descomprimidos, que para los scripts de Python deben incluir todos los módulos dependientes. He estado usando lambda-uploader para empaquetar mi script y sus dependencias de módulos, pero el paquete pandas es demasiado grande.
He visto ejemplos de personas que completan el aprendizaje automático y usan pandas en AWS Lambda (aunque un poco desactualizado), pero no puedo ver cómo lo están haciendo. ¿Alguna sugerencia?
El paquete que cargue en lambda no debe contener nada más que el código y los módulos de soporte necesarios para que Lambda ejecute su código. La interfaz de usuario de la consola Lambda limita el tamaño del archivo a 10 MB, pero puede cargar archivos zip de hasta 50 MB si los coloca en un depósito S3 y luego solicita que Lambda los cargue desde S3.
Cualquier otro activo que necesite para la ejecución, como los modelos de aprendizaje automático, debe cargarse por separado en S3 y luego descargarse desde su función Lambda en el momento de la ejecución. La función Lambda puede escribir en una carpeta /tmp pero tenga en cuenta que solo tiene acceso a 512 MB de espacio en disco. También tenga en cuenta que la función Lambda tiene un tiempo de ejecución máximo de 300 segundos, por lo que la descarga de archivos realmente grandes le quitará tiempo a su función para hacer un trabajo real con los datos que está descargando.
Si está utilizando bibliotecas de Python, puede deshacerse de botocore, boto3, ya que ya están presentes en las funciones lambdas de AWS.