Comments (2)
Continuing the discussion from #92.
One challenge is helping setting up the ACM certificate. Route53 can then be set up using CDK/CloudFormation AFAICT.
The certificate could be created via SDK calls. Here is an idea how, as a user, this could work:
$ npm i serverless-lift
# edit serverless.yml to add website with custom domain
$ serverless deploy
...
Error: The 'landing' website uses a custom domain (mywebsite.com), but no HTTPS certificate was found for that domain in ACM (in us-east-1).
Run 'serverless landing:certificate' to set up that certificate interactively.
$ serverless landing:certificate
# if no certificate exists
No HTTPS certificate matching 'mywebsite.com' was found in ACM in us-east-1.
To create a certificate manually in the AWS console, stop this command and follow that link: https://...
We can also create that certificate interactively:
How do you want to validate the domain?
- Email validation (...)
- DNS validation (...)
OK, creating the certificate.
The certificate has been created. You now need to validate it by email/DNS.
Once validated, you can run 'serverless deploy' and the certificate will automatically be used.
# exit
# if a certificate exists but isn't validated
A matching HTTPS certificate exists in ACM in the us-east-1 region: mywebsite.com / *.mywebsite.com
However, that certificate is not validated yet.
More details in the AWS Console: https://...
# exit
# if a certificate exists and is validated
A matching HTTPS certificate exists in ACM in the us-east-1 region: mywebsite.com / *.mywebsite.com
This certificate will automatically be used by Lift.
WDYT?
Is there any way to make it simpler with less steps?
Note: I'm afraid of adding interactive steps in serverless deploy
directly, I don't really want to hijack the default behavior.
from lift.
For anyone coming across this... This is achievable using Lift plus only one extra plugin.
Certificate creation can be handled using https://www.serverless.com/plugins/serverless-certificate-creator
You can then access the certificate ARN in the Lift configuration like this:
constructs:
website:
type: server-side-website
domain: ${env:DOMAIN}
certificate: ${certificate(${self:custom.customCertificate.certificateName}):CertificateArn}
And then the Route53 records to link the domain to the Cloudfront distribution can just be created in the usual Serverless resources:
section something like this:
resources:
Resources:
Route53Record0:
Type: AWS::Route53::RecordSet
Properties:
HostedZoneId: ${env:HOSTED_ZONE_ID}
Name: ${env:DOMAIN}
Type: A
AliasTarget:
HostedZoneId: Z2FDTNDATAQYW2 # Cloudfront Route53 HostedZoneId. This does not change.
DNSName: ${construct:website.cname}
from lift.
Related Issues (20)
- Python lambda function created inside a queue does not install requirements.txt file HOT 1
- Add posibility to modify origins in single-page-app HOT 3
- Specify Visibility Timeout for SQS other than 6 * function timeout HOT 2
- Define PriceClass for CloudFront distribution HOT 4
- Pass origin path in REST scenario HOT 1
- How to properly name my queue?
- Control how the CloudFront cache is invalidated HOT 4
- Allow extension to sns topic created for the alarm
- How to add complementary permissions for queue's worker ?
- Some command-names are incompatible with serverless-compose
- On remove of "single-page-app" and "static-website": S3 Bucket deletion is triggered, when the bucket is not yet empty HOT 1
- Need WAF as an extension to single-page-app HOT 1
- Global function timeout does not set the queue visibility timeout to x6 timeout
- Some server-side website construct are sometimes forwarded to AWS Lambda
- Prevent direct access to CloudFront origins
- I want to add to the array instead of overwriting it with extensions. HOT 1
- Will there be serverless v4 compatibility? HOT 12
- Serverless V4: Provider construct is not supported HOT 2
- v3: Error: Cannot use 'publicReadAccess' property on a bucket without allowing bucket-level public access through 'blockPublicAceess' property. HOT 4
- Lambda is updated before assets are uploaded HOT 8
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from lift.