awslabs / awslabs/aws-lambda-powershell-runtime
Compress runtime/modules to reduce deployment package unzipped size
- 主要言語
- 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
- 見積もり時間
- 1週間以上
- 活発さ
- 停滞
- 明瞭さ
- おおむね明確
- 初心者へのやさしさ
- 25/100