hatchawspublisher 0.3.0
hatch-aws-publisher
AWS publisher plugin for Hatch 🥚🐍. Hatch is modern, extensible Python project manager.
Table of Contents
hatch-aws-publisher
Table of Contents
How to enable
How to use it
Options
section tool.hatch.publish.aws
section tool.hatch.publish.aws.sam
section tool.hatch.publish.aws.sam.env.<env-name>
License
How to enable
Plugin must be installed in the same environment as Hatch itself.
python -m venv .venv
.venv/bin/pip install hatch-aws-publisher
How to use it
The publisher plugin name is called aws.
Build you app with SAM. You can use my Hatch plugin hatch-aws.
Put your SAM config to pyproject.toml (stack name is by default name of your project):
[project]
name = "my-app"
[tool.hatch.publish.aws.sam]
region = "us-west-1"
confirm_changeset = false
fail_on_empty_changeset = false
force_upload = true
capabilities = "CAPABILITY_IAM"
s3_bucket = "my-bucket"
parameter_overrides = ["stage=dev"]
[tool.hatch.publish.aws.sam.tags]
job = "batman"
name = "bruce"
Publish (deploy) your app.
hatch publish -p aws
Options
section tool.hatch.publish.aws
This section allows to modify behavior of the plugin. Available options:
[tool.hatch.publish.aws]
stack_name_append_env = true
stack_name_prefix = "super-"
stack_name_suffix = "-man"
deploy = true
All above options can be overwritten using a CLI parameter
.venv/hatch/bin/hatch publish -p aws -o stack_name_prefix="bat-"
stack_name_prefix: adds a prefix to a stack name -> bat-my-app
stack_name_suffix: adds a suffix to a stack name -> bat-my-app-man
stack_name_append_env: adds a selected environment to a stack name -> bat-my-app-man-dev
deploy: if it's false, only sam config will be generated, but sam deploy will not be executed
section tool.hatch.publish.aws.sam
Default values for SAM. You can use any key:value pair available in SAM config.
Only difference is format of tags (they use separate section):
[tool.hatch.publish.aws.sam.tags]
job = "batman"
name = "bruce"
section tool.hatch.publish.aws.sam.env.<env-name>
You can define specific deployment environments. They inherit values from tool.hatch.publish.aws.sam.
Environment settings in pyproject.toml:
[tool.hatch.publish.aws.sam]
region = "us-west-1"
confirm_changeset = false
fail_on_empty_changeset = false
force_upload = true
capabilities = "CAPABILITY_IAM"
[tool.hatch.publish.aws.sam.env.dev]
region = "us-west-2"
s3_bucket = "dev-bucket"
parameter_overrides = ["stage=dev"]
[tool.hatch.publish.aws.sam.env.prd]
s3_bucket = "prd-bucket"
parameter_overrides = ["stage=prd"]
fail_on_empty_changeset = true
You need to specify an environment using a CLI parameter:
hatch publish -p aws -o env=dev
License
Plugin hatch-aws-publisher is distributed under the terms of the MIT license.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.