Skip to main content

Poetry plugin to work with AWS's SAM serverless tool

Project description

Description

CLI tool to run the sam build on a poetry-based project.

AWS's SAM made use of a requirements.txt file for third party dependency management. This method is limiting in comparison to other tools such as Poetry that manage sub-dependencies' versions through a lock file. This poetry plugin deploys a serverless app through SAM with dependencies being managed through Poetry.

Created by Pinnacle Solutions Group, www.pinnsg.com.

Set up

This plugin is dependent on having aws-sam-cli locally. AWS has a doc page an aws-sam-cli with the installation instructions at this url: aws-sam-cli installation

To install in the same environment as the poetry on your system:

pip install poetry
poetry self add poetry-aws-sam

This will add sam as a command in poetry. If you run poetry list, you will see sam as an option amongst the commands. You can then call poetry sam --help for options in running sam in your poetry project.

The plugin replaces the sam build command.

Sam deployment steps

sam build
sam package
sam deploy

Deployment steps using poetry-aws-sam:

poetry sam --without-hashes
sam package
sam deploy

History

The plugin was created while Pinnacle Solutions Group was working with one of its clients on a projects built on aws serverless resources. The client used SAM for its serverless management. The company ended a vendor's contract, which led to the team not having a repository for its package whl's. The team shifted to using poetry and installing its packages from a github url. With the change to poetry, the team needed to update how it interacted with SAM. This plugin was created by Pinnacle Solutions Group to meet that need.

Working on poetry-aws-sam

Common Actions - justfile

There is a justfile for just commands. It is like make with improvements. You can read about installation and usage here: just - github

  • show all the commands by running only just: just
  • set up git hooks through the pre-commit project: just pre-commit-setup
  • run the unit tests: just tests

Install locally to test iteratively

python -m venv .venv
source .venv/bin/activate
pip install -e .
just sam # same as: .venv/bin/poetry sam

This will set up a virtual env and have the sam ready as a plugin

pypi deployment

The master.yml workflow will deploy to pypi. This means that the project version in pyproject.toml will need to be increased when merging into the master branch.

A good dev flow:

  • create new branch
  • update version number of project
    • can use poetry version minor to increase the minor version
  • with code update, create pull request to merge into master
  • approve pull request and then merge into master
  • the workflow will then deploy to pypi

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

poetry_aws_sam-1.4.3.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

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

poetry_aws_sam-1.4.3-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file poetry_aws_sam-1.4.3.tar.gz.

File metadata

  • Download URL: poetry_aws_sam-1.4.3.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for poetry_aws_sam-1.4.3.tar.gz
Algorithm Hash digest
SHA256 cd316052705a9d97e638e7b36a36270ba3e382dd6cf72f64819515cbc37e8d59
MD5 68e2fdae64113d864f12fd51805121e9
BLAKE2b-256 0d69bfa00495f6f7ea7d99e2ebcdbef30e9618a661c5d90b3e2cbd08589e5f52

See more details on using hashes here.

Provenance

The following attestation bundles were made for poetry_aws_sam-1.4.3.tar.gz:

Publisher: master.yml on upjohnc/poetry-aws-sam

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

File details

Details for the file poetry_aws_sam-1.4.3-py3-none-any.whl.

File metadata

  • Download URL: poetry_aws_sam-1.4.3-py3-none-any.whl
  • Upload date:
  • Size: 8.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for poetry_aws_sam-1.4.3-py3-none-any.whl
Algorithm Hash digest
SHA256 e30547bc601f4e36ad38eeb7caf7769ae148aab22d053f1d0cd5e32c28cd2ff2
MD5 38f1595d866456c431b324e9f2f0c930
BLAKE2b-256 36005dd5e50503bf69e57ced161ff40fac489c22f348953b08619f6b27efd48c

See more details on using hashes here.

Provenance

The following attestation bundles were made for poetry_aws_sam-1.4.3-py3-none-any.whl:

Publisher: master.yml on upjohnc/poetry-aws-sam

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