awslabs / awslabs/aws-lambda-powershell-runtime
Compress runtime/modules to reduce deployment package unzipped size
- Lenguaje dominante
- PowerShell
- Estrellas
- 65
- Forks
- 21
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Descripción
AWS Lambda limits ZIP deployment packages to 250 MB on-disk. The Linux PowerShell release builds are ~170 MB in the current release, which takes up ~70% of that cap. (Community members' attempts at producing "slim" PowerShell containers only reduce sizes by ~30MB, which isn't a ton in broader context.)
Pure PowerShell script modules are generally quite small, but compiled CLR module assemblies or autogenerated modules (e.g. `Microsoft.Graph.*`, `Az.*`, `AWS.Tools.*`) can get very large.
The current architecture only allows for ~80MB of module dependencies - `AWS.Tools.S3` and `Microsoft.Graph.Users` (with respective dependencies) breaches the 250MB cap.
Compressing the PowerShell runtime itself would:
* Free up >100MB of deployment package size (172MB vs 66 MB)
* Unblock build artifact verification (PowerShell publishes SHAs of release artifacts)
Supporting compressed module dependencies (e.g. `/opt/modules-packed.zip` or `/opt/modules-packed/*.nupkg` gets unpacked to `/tmp/modules-unpacked` and added to PSModulePath) could help the situation as well.
Guía de contribución
Línea de trabajo
Empieza revisando el empaquetado de la release de Linux PowerShell y cómo se incluyen las dependencias de los módulos en el deployment ZIP. Compara el artefacto actual de 172 MB con el runtime comprimido o los módulos empaquetados propuestos, y considera las rutas /opt y /tmp de AWS Lambda mencionadas. Se considera terminado cuando el artefacto de la release es sustancialmente más pequeño, las dependencias de los módulos siguen estando disponibles y la verificación del artefacto deja de estar bloqueada.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- aws, powershell
- Área
- build-system, cloud
- Tipo de issue
- Nueva funcionalidad
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 25/100