awslabs / awslabs/aws-lambda-powershell-runtime

Compress runtime/modules to reduce deployment package unzipped size

Abierto
#37 9 comentarios 0 reacciones 0 asignados Ver en GitHub
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

Abrir la 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

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.