awslabs / awslabs/aws-lambda-powershell-runtime

Compress runtime/modules to reduce deployment package unzipped size

オープン
#37 コメント 9 件 リアクション 0 件 担当者 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
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
25/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。