lib/cloudster/cloud_front.rb in cloudster-2.19.7 vs lib/cloudster/cloud_front.rb in cloudster-2.20.0
- old
+ new
@@ -16,10 +16,13 @@
# * options<~Hash> -
# * :name: String containing the name of CloudFront resource
def initialize(options = {})
require_options(options, [:name])
@name = options[:name]
+ @enabled = options[:enabled] || true
+ @default_root_object = options[:default_root_object] || 'index.html'
+ @aliases = options[:aliases] || []
end
# Merges the required CloudFormation template for adding an CloudFront to an s3 instance
#
#
@@ -45,22 +48,34 @@
def template
template = { "Resources" => {
@name => {
"Type" => "AWS::CloudFront::Distribution",
"Properties" => {
- "DistributionConfig" => {
- "S3Origin" => {
- "DNSName"=> {"Fn::GetAtt" => [@instance_name, "DomainName"]},
+ "DistributionConfig"=> {
+ "Origins"=>[{
+ "DomainName"=> {"Fn::GetAtt" => [@instance_name, "DomainName"]},
+ "Id"=>@instance_name,
+ "S3OriginConfig"=> {}
+ }],
+ "DefaultRootObject" => @default_root_object,
+ "DefaultCacheBehavior" => {
+ "TargetOriginId" => @instance_name,
+ "ForwardedValues" => {
+ "QueryString" => "false"
+ },
+ "ViewerProtocolPolicy" => "allow-all"
},
- "Enabled" => "true"
+ "Aliases"=> @aliases,
+ "Enabled"=> @enabled.to_s
}
}
}
}
}
outputs = {
@name => {
- 'domain_name' => {'Fn::GetAtt' => [@name, 'DomainName']}
+ 'domain_name' => {'Fn::GetAtt' => [@name, 'DomainName']},
+ 'distribution_id' => { "Ref" => @name }
}
}
template['Outputs'] = output_template(outputs)
return template