awslabs / awslabs/aws-lambda-powershell-runtime

Compress runtime/modules to reduce deployment package unzipped size

未关闭
#37 9 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看
主要语言
PowerShell
星标
65
派生
21
PR 合并指标
30 天内没有已合并 PR

描述

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.

贡献指南

打开贡献指南

调研方向

首先检查 Linux PowerShell 的发布打包方式,以及模块依赖项如何包含在 deployment ZIP 中。将当前的 172 MB 构件与提议的压缩运行时或打包模块进行比较,并考虑提到的 AWS Lambda /opt 和 /tmp 路径。完成的标准是发布构件显著变小,同时模块依赖项仍然可用,并且构件验证不再受阻。

由索引模型根据 Issue 内容生成。

评估

技术栈
aws, powershell
领域
build-system, cloud
Issue 类型
功能
难度
5/5
预计耗时
一周以上
活跃度
停滞
描述清晰度
基本清楚
新手友好度
25/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。