Opción para eliminar aws-sdk de node_modules locales antes de implementar
aws-sdk por sí solo es un módulo de nodo enorme (más de 20 MB descomprimidos) y, junto con todas sus dependencias, pesa lo suficiente como para evitar ediciones de código en el navegador en la plataforma lambda.
Un usuario puede querer usar algo que dependa de aws-sdk (por ejemplo @awspilot/dynamodb
), pero funcionará bien con el módulo aws-sdk nativo de lambda.
Actualmente, puede eliminar manualmente aws-sdk y sus dependencias y, por lo tanto, reducir su función package.zip, usando mi caso como ejemplo, un factor de 25.
¿Podría ser una opción para serverless eliminar estos módulos innecesarios antes de empaquetar/implementar?
N / A
Hola @davepwsmith gracias por abrir 👍
Puede usar las reglas exclude
/ include
para definir globs que describirán lo que debe excluirse/incluirse en su paquete de implementación (consulte: https://serverless.com/framework/docs/providers /aws/guide/packaging#exclude--include).
También estamos trabajando en el n.° 2709, que podría estar relacionado.
FWIW: _Ahora_ basta con agregar aws-sdk
como devDependency
. Luego se excluirá automáticamente y debido a que el tiempo de ejecución de AWS Lambda Node.JS tiene el aws-sdk incrustado, su Lambda aún debería funcionar (el mío funcionó :))
@ChristianUlbrich ¡ Gracias por compartir!
Acabo de reducir 9 mb del tamaño del paquete al mover aws-sdk
a devDependency
🔥
Comentario más útil
FWIW: _Ahora_ basta con agregar
aws-sdk
comodevDependency
. Luego se excluirá automáticamente y debido a que el tiempo de ejecución de AWS Lambda Node.JS tiene el aws-sdk incrustado, su Lambda aún debería funcionar (el mío funcionó :))