Module: CfnDsl::CloudFormation
- Includes:
- Functions
- Defined in:
- lib/cfndsl/cloudformation.rb
Overview
Syntactic Sugar for embedded ruby usage require ‘cfndsl`
class Builder
include CfnDsl::CloudFormation
def build_template()
template = CloudFormation('ANewTemplate')
a_param = template.Parameter('AParam')
a_param.Type('String')
return template
end
def map_instance_type(instance_type)
# logic to auto convert instance types to latest available etc..
FnFindInMap("InstanceTypeConversion",Ref('AWS::Region'),instance_type)
end
# templates can be passed around to other methods/classes
def add_instance(template, instance_type)
ec2 = template.EC2_Instance(:myInstance)
ec2.InstanceType(map_instance_type(instance_type))
# Alteratively with DSL block syntax
this = self # declare block is eval for the model instance so need to keep a reference
template.declare do
EC2_Instance(:myInstance) do
InstanceType this.map_instance_type(instance_type)
end
end
end
def generate(template,pretty: false)
valid = template.validate
pretty ? valid.to_json : JSON.pretty_generate(valid)
end
end
Constant Summary
Constants included from Functions
Instance Method Summary collapse
Methods included from Functions
#FnAnd, #FnBase64, #FnCidr, #FnEquals, #FnFindInMap, #FnGetAZs, #FnGetAtt, #FnIf, #FnImportValue, #FnJoin, #FnNot, #FnOr, #FnSelect, #FnSplit, #FnSub, #Ref
Instance Method Details
#CloudFormation(description = nil, &block) ⇒ Object
104 105 106 |
# File 'lib/cfndsl/cloudformation.rb', line 104 def CloudFormation(description = nil, &block) CloudFormationTemplate.new(description, &block) end |