class CloudfrontConfigService
Public Class Methods
new(bucket, tags = [])
click to toggle source
# File lib/renuo/cli/app/services/cloudfront_config_service.rb, line 4 def initialize(bucket, tags = []) @bucket = bucket @tags = tags end
Public Instance Methods
to_s()
click to toggle source
# File lib/renuo/cli/app/services/cloudfront_config_service.rb, line 9 def to_s bucket_config.to_json.strip end
Private Instance Methods
bucket_config()
click to toggle source
# File lib/renuo/cli/app/services/cloudfront_config_service.rb, line 15 def bucket_config { DistributionConfig: { CallerReference: unique_caller_reference, Origins: { Quantity: 1, Items: [ { Id: "S3-#{@bucket}", DomainName: "#{@bucket}.s3.amazonaws.com", OriginPath: "", CustomHeaders: { Quantity: 0 }, S3OriginConfig: { OriginAccessIdentity: "" } } ] }, DefaultCacheBehavior: { TargetOriginId: "S3-#{@bucket}", ForwardedValues: { QueryString: false, Cookies: { Forward: "none" }, Headers: { Quantity: 0 }, QueryStringCacheKeys: { Quantity: 0 } }, TrustedSigners: { Enabled: false, Quantity: 0 }, ViewerProtocolPolicy: "redirect-to-https", MinTTL: 0, AllowedMethods: { Quantity: 2, Items: %w[ HEAD GET ], CachedMethods: { Quantity: 2, Items: %w[ HEAD GET ] } }, SmoothStreaming: false, DefaultTTL: 86_400, MaxTTL: 31_536_000, Compress: true, LambdaFunctionAssociations: { Quantity: 0 } }, CacheBehaviors: { Quantity: 0 }, CustomErrorResponses: { Quantity: 0 }, Comment: "", Logging: { Enabled: false, IncludeCookies: false, Bucket: "", Prefix: "" }, PriceClass: "PriceClass_100", Enabled: true, ViewerCertificate: { CloudFrontDefaultCertificate: true, MinimumProtocolVersion: "TLSv1.2_2018", CertificateSource: "cloudfront" }, Restrictions: { GeoRestriction: { RestrictionType: "none", Quantity: 0 } }, WebACLId: "", HttpVersion: "http2", IsIPV6Enabled: true }, Tags: { Items: @tags } } end
unique_caller_reference()
click to toggle source
# File lib/renuo/cli/app/services/cloudfront_config_service.rb, line 113 def unique_caller_reference "#{Time.now.getutc.to_i}-#{@bucket}" end