aws / aws/chalice

Is 'chalice deploy' transactional?

Open
#1,661 1 comment 1 reaction 0 assignees View on GitHub
Dominant language
Python
Stars
11.1k
Forks
1k
Avg merge
1d 22h
Merged PRs (30d)
2

Description

This can be a bit of a topic of discussion. But here is some context.

Over the last year, I have experimented with a few deployment models supported by Chalice. While I acknowledge that for advanced use cases, CDK or Terraform or SAM is needed, the simple 'chalice deploy' has value even beyond just dev workflows.

One reason is that for 90% of the small to medium sized business, static environments (through separated static VPCs and/or separated accounts) like dev -> test -> prod is good enough. Over time they can improve their level of sophistication but I believe they would still want to eventually stick with 'chalice deploy'.

My simple scheme through GitHub workflows works perfectly for this. With one exception and that also results in a question.

Was 'chalice deploy' meant to set the state of the app inside AWS to how it is defined in the code? Was it a deliberate design decision to only do upsert type things when changing the state of the app inside AWS?

For example, I have noticed that if I rename a pure Lambda handler, the old one still stays in place. And if it is driven by an event schedule, that's not that great because I have to remove it by hand with some deadline (in minutes or hours).

In the future, are there plans to add that option, i.e. a flag in the config which will clean up things during a deploy?

Contributor guide

Open the contributing guide

Research direction

Start by examining how `chalice deploy` currently reconciles AWS resources, especially renamed Lambda handlers and event schedules. Determine whether the desired behavior is a cleanup flag or a documented transactional guarantee, then define the affected resource types and tests needed to show that removed resources are handled safely.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, python
Domain
cli, cloud, devops
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.