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