Skip to main content

Build reproducible AWS Lambda packages outside Terraform, optimized for terraform-aws-lambda by serverless.tf.

Project description

repro-lambda

Build reproducible AWS Lambda packages outside Terraform, optimized for terraform-aws-lambda by serverless.tf.

Produces byte-identical zip files across local dev (macOS) and CI (Linux), uploads to S3 by content-hash key, and lets Terraform read s3_existing_package instead of building during terraform plan/apply.

Install

pip install repro-lambda

Quick start

repro-lambda lock                     # regenerate per-arch requirement + source locks
repro-lambda build --bucket <bucket>  # build all lambdas in lambdas.toml, upload to S3
repro-lambda build --verify --dry-run # two-pass byte-reproducibility check (no upload)
repro-lambda promote \
  --dev-bucket <dev> --prod-bucket <prod>  # copy dev -> prod by content sha (no rebuild)

--bucket (or REPRO_LAMBDA_BUCKET) is required for a real build; add --dry-run to build without uploading. There is no init command yet (the subcommand is currently a stub).

Documentation

What each document covers, by section:

Setup - one-time AWS provisioning (SETUP.md)

Provision the supporting infrastructure once per AWS account and environment.

Usage - day-to-day (USAGE.md)

Using repro-lambda once the infrastructure exists.

Example - runnable (examples/complete/)

A self-contained consumer setup: manifest, catalog, and Terraform using terraform-aws-modules/lambda/aws.

License

MIT - see LICENSE.

Author

Anton Babenko - @antonbabenko on Twitter, antonbabenko on LinkedIn.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

repro_lambda-0.7.2.tar.gz (204.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

repro_lambda-0.7.2-py3-none-any.whl (37.6 kB view details)

Uploaded Python 3

File details

Details for the file repro_lambda-0.7.2.tar.gz.

File metadata

  • Download URL: repro_lambda-0.7.2.tar.gz
  • Upload date:
  • Size: 204.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for repro_lambda-0.7.2.tar.gz
Algorithm Hash digest
SHA256 9b5837eaa60fd17c8c2e91c5771bef69550ee20a9160043fd5753ec6363004fe
MD5 e0d7004705522c61ba3cf1f8f1b16460
BLAKE2b-256 6e43d12b0db4b3c7e6a8124781d532c36bbba54464265173e306195cd4b12d83

See more details on using hashes here.

Provenance

The following attestation bundles were made for repro_lambda-0.7.2.tar.gz:

Publisher: release.yml on antonbabenko/repro-lambda

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file repro_lambda-0.7.2-py3-none-any.whl.

File metadata

  • Download URL: repro_lambda-0.7.2-py3-none-any.whl
  • Upload date:
  • Size: 37.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for repro_lambda-0.7.2-py3-none-any.whl
Algorithm Hash digest
SHA256 e22f23b8d4a721dc5fc75df3891c23f4039fbe9e1c8ba7ea8229610314fd09dc
MD5 52fd9696e09077fdf2c2f63e4067ece3
BLAKE2b-256 10706cef16c35176be7d41ef7cd9477972c34d7f80c214e32280ecd18a2a7907

See more details on using hashes here.

Provenance

The following attestation bundles were made for repro_lambda-0.7.2-py3-none-any.whl:

Publisher: release.yml on antonbabenko/repro-lambda

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page