Skip to main content
Documentation Status https://github.com/MacHu-GWU/aws_lbd_art_builder_core-project/actions/workflows/main.yml/badge.svg https://codecov.io/gh/MacHu-GWU/aws_lbd_art_builder_core-project/branch/main/graph/badge.svg https://img.shields.io/pypi/v/aws-lbd-art-builder-core.svg https://img.shields.io/pypi/l/aws-lbd-art-builder-core.svg https://img.shields.io/pypi/pyversions/aws-lbd-art-builder-core.svg https://img.shields.io/badge/✍️_Release_History!--None.svg?style=social&logo=github https://img.shields.io/badge/⭐_Star_me_on_GitHub!--None.svg?style=social&logo=github
https://img.shields.io/badge/Link-API-blue.svg https://img.shields.io/badge/Link-Install-blue.svg https://img.shields.io/badge/Link-GitHub-blue.svg https://img.shields.io/badge/Link-Submit_Issue-blue.svg https://img.shields.io/badge/Link-Request_Feature-blue.svg https://img.shields.io/badge/Link-Download-blue.svg

Welcome to aws_lbd_art_builder_core Documentation

https://aws-lbd-art-builder-core.readthedocs.io/en/latest/_static/aws_lbd_art_builder_core-logo.png

aws_lbd_art_builder_core is the shared base in a family of AWS Lambda artifact builder packages. It follows a 1+N design:

  • 1 core package (this one): tool-agnostic infrastructure — path layouts, S3 layouts, credentials, layer packaging, upload, publish, and Lambda source artifact build.

  • N tool-specific packages, such as aws_lbd_art_builder_uv: each one installs a Lambda layer’s dependencies with its tool (Step 1) and hands the result to core.

It covers two jobs:

  • Lambda layer: Build (sub-package) → Package layer.zip → Upload to S3 → Publish a new layer version. Core publishes only when the dependency lock file changed since the last published version, so unchanged dependencies never create a new version. LayerDeploymentWorkflow runs all four steps in one call.

  • Lambda function source: install your project (without its dependencies) with pip or uv, zip it, and upload it to s3://.../source/{version}/{sha256}/source.zip. The SHA256 in the key makes CDK / CloudFormation redeploy whenever the code changes.

Core never calls uv sync, poetry install, or pip install -r to install layer dependencies; those belong to the tool-specific sub-packages. Most users install a sub-package, which pulls in core.

Quick Look

Build and upload a Lambda function’s source code:

import shutil
from pathlib import Path

import boto3
from s3pathlib.api import S3Path
from aws_lbd_art_builder_core.api import source_api

s3_client = boto3.Session().client("s3")
s3dir_lambda = S3Path("s3://my-bucket/projects/my_app/lambda/")

result = source_api.build_and_upload_source_using_uv(
    s3_client=s3_client,
    path_bin_uv=Path(shutil.which("uv")),
    dir_project_root=Path("/path/to/my_app-project"),
    s3dir_source=source_api.SourceS3Layout.from_s3dir_lambda(s3dir_lambda).dir_root,
    skip_prompt=True,
)
print(result.s3path_source_zip.uri)

Build and publish a Lambda layer, with a builder from a sub-package:

import aws_lbd_art_builder_uv.api as aws_lbd_art_builder_uv
from aws_lbd_art_builder_core.api import layer_api

boto_ses = boto3.Session()
workflow = layer_api.LayerDeploymentWorkflow(
    builder=aws_lbd_art_builder_uv.layer_api.UvLambdaLayerLocalBuilder(
        path_pyproject_toml=Path("/path/to/my_app-project/pyproject.toml"),
        skip_prompt=True,
    ),
    path_manifest=Path("/path/to/my_app-project/uv.lock"),
    s3dir_lambda=s3dir_lambda,
    layer_name="my_app",
    s3_client=boto_ses.client("s3"),
    lambda_client=boto_ses.client("lambda"),
)
deployment = workflow.run()  # raises ValueError if uv.lock is unchanged
print(deployment.layer_version_arn)

Pass plain boto3 clients. S3 locations are s3pathlib 3.x S3Path objects.

Install

aws_lbd_art_builder_core is released on PyPI and supports Python 3.11 to 3.14. The base install only covers paths, zipping, and helpers; the AWS steps need an extra:

$ pip install "aws-lbd-art-builder-core[upload]"     # S3 upload (boto3, s3pathlib 3.x)
$ pip install "aws-lbd-art-builder-core[publish]"    # upload + publish Lambda layer versions

To upgrade to latest version:

$ pip install --upgrade "aws-lbd-art-builder-core[publish]"

Upgrading from 0.x: 1.0.0 moved to s3pathlib 3.x and no longer accepts a BotoSesManager as s3_client; see the release history.

Metadata

Release files for aws_lbd_art_builder_core 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aws_lbd_art_builder_core 1.0.0
File Size Uploaded
aws_lbd_art_builder_core-1.0.0.tar.gz 37.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aws_lbd_art_builder_core 1.0.0
File Interpreter ABI Platform
aws_lbd_art_builder_core-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size: 79.0 kB

Release files / aws_lbd_art_builder_core-1.0.0.tar.gz

Download URL aws_lbd_art_builder_core-1.0.0.tar.gz
Size 37.2 kB
Tags Source
SHA-256 checksum
How to use checksums
aad45697c4249c918377d72adf540f94ee6ec646d80e375a2df355b40646f016
BLAKE2b-256 checksum
How to use checksums
5cd1360e5de889e3da2b90e014d66511ddd73c34526a8dc733a5f475fd757d90
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / aws_lbd_art_builder_core-1.0.0-py3-none-any.whl

Download URL aws_lbd_art_builder_core-1.0.0-py3-none-any.whl
Size 41.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
085607d5f1e862cfbb51f3586789bce5ce5b293f0499f8228b20ec29ad0aaf63
BLAKE2b-256 checksum
How to use checksums
98c3dd9a313d0dff616b8744ea3da02dc4fbba55e9da79820dc8e1539b8e0eab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page