Version: 0.0.1
Last Updated: Unknown
Node scaffold for CloudFront.
# key name cloudformation: # building for cloudfront - cloudfront: bucketName: dok-bucket-example
1AWSTemplateFormatVersion: '2010-09-09'2Resources:3 cdnDistribution:4 Type: 'AWS::CloudFront::Distribution'5 Properties:6 DistributionConfig:7 Origins:8 - DomainName: git-good-sites.s3.amazonaws.com9 S3OriginConfig:10 OriginAccessIdentity: origin-access-identity/cloudfront/E2ACU9GV9OIXSU11 Id: S3-git-good-sites/<%= bucketName %>12 OriginPath: /<%= bucketName %>13 Enabled: 'true'14 DefaultRootObject: index.html15 # Aliases:16 # - www.<%= bucketName %>.com17 # - <%= bucketName %>.com18 DefaultCacheBehavior:19 TargetOriginId: S3-git-good-sites/<%= bucketName %>20 ForwardedValues:21 QueryString: 'false'22 ViewerProtocolPolicy: allow-all23 PriceClass: PriceClass_All24 ViewerCertificate:25 CloudFrontDefaultCertificate: 'true'
1#!/usr/bin/env node23const fs = require('fs-extra');4const ejs = require('ejs');5const dir = __dirname;6const path = process.cwd();7const appDir = path;89/**10 * Build out a Cloudfront file11 * for Cloudformation.12 *13 * @param {*} data14 */15const buildCloudFormation = (data) => {16 ejs17 .renderFile(`${dir}/basic.ejs`, data, {}, function (err, str) {18 // str => Rendered HTML string19 if (err) {20 console.log(err);21 throw err;22 }2324 fs.outputFileSync(`${appDir}/.cloudformation/cloudfront.yml`, str);25 console.log('\t- Cloudfront file generated');26 });27};2829/**30 * Bridge the CircleCi file31 *32 * @example33 * lift up up.yml34 *35 * @param {*} data36 */37module.exports = function (data) {38 console.log('Bridging CloudFormation');39 try {40 // map the correct types across41 buildCloudFormation(data);42 } catch (err) {43 console.error(err);44 }45};
1yarn add fs-extra ejs --dev