Examples

Let's say we make a simple change to a template, like changing the default InstanceType from t2.small to t2.micro. Here's what happens when you run lono cfn update

lono cfn update ec2

The output should look similiar to this:

<img src=“/img/tutorials/ec2/cfn-update-instance-type.png” alt=“Stack Update” class=“doc-photo”>

Notice that before the update gets performed lono provides a preview of the changes that are about to take place. There are two types of “diffs” in the preview.

  1. Source code diff of the templates. This is generated by downloading the current CloudFormation template and comparing it with the locally generated one using colordiff.

  2. CloudFormation Change Set list of changes. This is generated using AWS CloudFormation Change Set feature.

You are prompted with an “Are you sure?” confirmation before lono continues.

By default, the update command will display a preview of the stack changes before applying the update and prompt to check if you are sure. If you want to bypass the are you sure prompt, use the --sure option.

lono cfn update ec2 --sure

Conventions: template and param

Lono follows some coventions that helps keep the commands short. We'll go through an example to explain:

Provided that you are in a lono project and have a demo lono blueprint that contains a demo template. To update a stack you can run:

lono cfn update demo

The above command will generate:

By [convention]({% link _docs/conventions/cli.md %}), the blueprint name is the same as the stack name. In turn, template name is the same as the blueprint name. Lastly, the param name will default to the template name.

Here are examples of overriding the template and params name conventions.

lono cfn update demo --template different1

The template used is app/templates/different1.rb and the parameters used is configs/demo/params/development/demo/different1.txt.

lono cfn update demo --param different2

The template used is app/templates/demo.rb and the parameters used is configs/demo/params/development/demo/different2.json.

lono cfn update demo --template different3 --param different4

The template used is app/templates/different3.rb and the parameters used is configs/demo/params/different3/different4.json.