Giter Site home page Giter Site logo

Comments (2)

mnapoli avatar mnapoli commented on September 2, 2024

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.

bobwallis avatar bobwallis commented on September 2, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.