A blueprint is one of the core components of a Lono project. Blueprints can have many Templates.
Here’s an example demo blueprint structure:
demo ├── app │ ├── helpers │ ├── templates │ │ └── demo.rb │ └── user_data │ └── bootstrap.sh ├── demo.gemspec ├── .lono │ └── config.yml └── setup └── configs.rb
Lono uses the files under the
app folder and combines them with your your projects
configs files to generate CloudFormation templates and launch stacks. The template is the component you’ll usually work mostly with, IE:
Files and Folders
|File / Folders||Description|
|app/helpers||Define your custom helpers here. The custom helpers are made available to templates, variables, and params. Helpers are covered in detail in custom helpers.|
|app/templates||Where CloudFromation templates are defined. Refer to the DSL docs for the syntax.|
|app/user_data||Where user_data scripts live. You can include the user data script into your code with the user_data builtin helper|
|demo.gemspec||Where the gem specs and dependencies are defined. Blueprints make use of gemspecs to handle dependencies.|
|.lono/config.yml||Where the blueprint_name and blueprint_type. The blueprint name is determined in here, not by the gem name or folder name.|
|setup/configs.rb||Where a setup script can be defined to work with lono configure.|
Hopefully that gives you a basic idea of a lono blueprint structure.
Templates belong to a blueprint. Another way of putting is that each blueprint can have many templates.
While it is possible to create multiple templates for a blueprint, it is recommended to create only template for each blueprint. This allows you to take advantage of the Lono CLI naming conventions and keep your commands short and simple. You may find that it results in more focused blueprint code.
To create a new blueprint you can use:
lono blueprint myblueprint
This creates a
blueprint/myblueprint folder in your lono project with a starter structure.
To list the projects blueprints:
Pro tip: Use the <- and -> arrow keys to move back and forward.