Review Project
Let’s explore the generated app folder.
Demo Blueprint
Let’s check out the generated code.
app/blueprints/demo/template.rb
parameter("BucketName", Conditional: true)
parameter("AccessControl", Default: "Private")
resource("Bucket", "AWS::S3::Bucket",
BucketName: ref("BucketName", Conditional: true),
AccessControl: ref("AccessControl"),
)
output("BucketName", ref("Bucket"))
You can see that the starter demo blueprint is written in a DSL. This demo blueprint creates a s3 bucket.
The Lono DSL closely resembles the CloudFormation Template anatomy sections. The DSL methods pretty much map one-to-one. Docs: Lono DSL Basics
Lono Method | CloudFormation Section |
---|---|
parameter | Parameters |
resource | Resources |
output | Outputs |
One thing that may stand out is the Conditional
option. This is a CloudFormation pattern that is common enough that lono has encapsulated it: Conditional Parameter. In short, it just uses AWS::NoValue
as the value when the parameter is a blank string, BucketName
in this case.
Next, we’ll build the CloudFormation template.