Skip to content

Compress runtime/modules to reduce deployment package unzipped size #37

Open
@sean-r-williams

Description

@sean-r-williams

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions