The CloudFrontDistributionDecorator associates a CloudFront Distribution with your S3-backed website. It is implemented as a ServiceDecoratorHookHandler as a single service can only provision one CloudFront distribution.
Sample usage:
////////////////////////////////////////////////////////////////////////////////
// CloudFront settings
const subdomain = "mySiteSubdomain"
// The domain managed by Route53.
const domainName = "myRoute53ManagedDomain.net"
// The site will be available at
// https://mySiteSubdomain.myRoute53ManagedDomain.net
// The S3 bucketname must match the subdomain.domain
// name pattern to serve as a CloudFront Distribution target
var bucketName = fmt.Sprintf("%s.%s", subdomain, domainName)
func distroHooks(s3Site *sparta.S3Site) *sparta.WorkflowHooks {
// Commented out demonstration of how to front the site
// with a CloudFront distribution.
// Note that provisioning a distribution will incur additional
// costs
hooks := &sparta.WorkflowHooks{}
siteHookDecorator := spartaDecorators.CloudFrontSiteDistributionDecorator(s3Site,
subdomain,
domainName,
gocf.String(os.Getenv("SPARTA_ACM_CLOUDFRONT_ARN")))
hooks.ServiceDecorators = []sparta.ServiceDecoratorHookHandler{
siteHookDecorator,
}
return hooks
}