From 771b28919d54503b9ce259fc9187de256a0e38cb Mon Sep 17 00:00:00 2001 From: roodrallec Date: Tue, 22 Mar 2022 08:10:05 +0000 Subject: [PATCH 1/4] alternate cloudfront domains update --- serverless.component.yml | 10 +++++----- src/utils.js | 10 ++++++++++ 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/serverless.component.yml b/serverless.component.yml index e3ecfbc..affd053 100644 --- a/serverless.component.yml +++ b/serverless.component.yml @@ -1,9 +1,9 @@ -name: website -version: 1.1.2 -org: serverlessinc -description: Deploys Serverless Websites +name: website-alternate-domains +version: 1.0.1 +org: roodrallec +description: Variation of Serverless Website Component for Alternate Cloudfront Domain Names keywords: aws, serverless, website -repo: https://github.com/serverless-components/website +repo: https://github.com/Syndi-Health/website license: MIT src: ./src types: diff --git a/src/utils.js b/src/utils.js index 612f084..9e474aa 100644 --- a/src/utils.js +++ b/src/utils.js @@ -99,6 +99,9 @@ const getConfig = (inputs, state) => { config.domainHostedZoneId = config.domain ? state.domainHostedZoneId : null config.certificateArn = state.certificateArn + // for alternate cloudfront CNAME domains + config.alternateDomainNames = inputs.alternateDomainNames + // if user input example.com, make sure we also setup www.example.com if (config.domain && config.domain === config.nakedDomain) { config.domain = `www.${config.domain}` @@ -598,6 +601,13 @@ const createCloudFrontDistribution = async (clients, config) => { distributionConfig.Aliases.Quantity = 2 distributionConfig.Aliases.Items.push(config.nakedDomain) } + + if (Array.isArray(config.alternateDomainNames)) { + config.alternateDomainNames.forEach((domain) => { + distributionConfig.Aliases.Quantity += 1 + distributionConfig.Aliases.Items.push(domain) + }) + } } try { From 65208f2498a5008904058a1659ee6ccd2bd3d1ba Mon Sep 17 00:00:00 2001 From: roodrallec Date: Tue, 22 Mar 2022 09:00:52 +0000 Subject: [PATCH 2/4] alternate cloudfront domains update --- serverless.component.yml | 2 +- src/serverless.js | 4 ++++ src/utils.js | 9 +++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/serverless.component.yml b/serverless.component.yml index affd053..930a766 100644 --- a/serverless.component.yml +++ b/serverless.component.yml @@ -1,5 +1,5 @@ name: website-alternate-domains -version: 1.0.1 +version: 1.0.3 org: roodrallec description: Variation of Serverless Website Component for Alternate Cloudfront Domain Names keywords: aws, serverless, website diff --git a/src/serverless.js b/src/serverless.js index f9baeab..ee94289 100644 --- a/src/serverless.js +++ b/src/serverless.js @@ -150,6 +150,10 @@ class Website extends Component { outputs.domain = `https://${config.domain}` } + if (config.alternateDomainNames) { + outputs.alternateDomainNames = config.alternateDomainNames + } + return outputs } diff --git a/src/utils.js b/src/utils.js index 9e474aa..37ded3c 100644 --- a/src/utils.js +++ b/src/utils.js @@ -101,6 +101,8 @@ const getConfig = (inputs, state) => { // for alternate cloudfront CNAME domains config.alternateDomainNames = inputs.alternateDomainNames + ? inputs.alternateDomainNames.split(',') + : null // if user input example.com, make sure we also setup www.example.com if (config.domain && config.domain === config.nakedDomain) { @@ -677,6 +679,13 @@ const updateCloudFrontDistribution = async (clients, config) => { params.DistributionConfig.Aliases.Quantity = 2 params.DistributionConfig.Aliases.Items.push(config.nakedDomain) } + + if (Array.isArray(config.alternateDomainNames)) { + config.alternateDomainNames.forEach((domain) => { + params.DistributionConfig.Aliases.Quantity += 1 + params.DistributionConfig.Aliases.Items.push(domain) + }) + } } // 6. then finally update! const res = await clients.cf.updateDistribution(params).promise() From af374b2c5959b2d1f978b838c1110577c5b4531f Mon Sep 17 00:00:00 2001 From: roodrallec Date: Tue, 22 Mar 2022 09:21:47 +0000 Subject: [PATCH 3/4] updated Readme --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 55bb8d9..4eb2ed2 100644 --- a/README.md +++ b/README.md @@ -98,6 +98,7 @@ stage: dev # (optional) serverless dashboard stage. defaul inputs: src: ./src # (optional) path to the source folder. default is a hello world html file. domain: serverless.com # (optional) domain name. this could also be a subdomain. + alternateDomainNames: altDomainA.serverless.com,altDomainB.serverless.com # (optional) alternate cloudfront domain names, separated by a comma. region: us-east-2 # (optional) aws region to deploy to. default is us-east-1. bucketName: my-bucket # (optional) aws bucket name. default is an auto generated name. indexDocument: index.html # (optional) index document for your website. default is index.html. From f37b009ff1a01395d56d5d748f60be424855e5f8 Mon Sep 17 00:00:00 2001 From: roodrallec Date: Tue, 22 Mar 2022 09:58:35 +0000 Subject: [PATCH 4/4] original serverless component --- serverless.component.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/serverless.component.yml b/serverless.component.yml index 930a766..e3ecfbc 100644 --- a/serverless.component.yml +++ b/serverless.component.yml @@ -1,9 +1,9 @@ -name: website-alternate-domains -version: 1.0.3 -org: roodrallec -description: Variation of Serverless Website Component for Alternate Cloudfront Domain Names +name: website +version: 1.1.2 +org: serverlessinc +description: Deploys Serverless Websites keywords: aws, serverless, website -repo: https://github.com/Syndi-Health/website +repo: https://github.com/serverless-components/website license: MIT src: ./src types: