website icon indicating copy to clipboard operation
website copied to clipboard

IPv6 AAAA record is not created

Open Enase opened this issue 6 years ago • 3 comments

Route 53 does not have IPv6 AAAA record after deploy. Would be better to have a way to configure (enable/disable) IPv6.

Enase avatar Oct 07 '19 14:10 Enase

Thanks for opening @Enase ... I'm planning to refactor the website component soon and add more options for domain. Could you share how you think this input would look like? or how it'd work in general? more details would be helpful here.

eahefnawy avatar Oct 08 '19 09:10 eahefnawy

Hi @eahefnawy First of all, thanks for your response.

I think it's responsibility of domain component, and a way you proxy domain configuration is not so important, but it should be separate section with totally the same configuration options (in order to keep integrity).

The most important new options in my opinion:

  • invalidationPaths
  • enableIPv6
  • priceClass

Other new options I will be happy to see implemented:

  • viewerProtocolPolicy
  • originCustomHeaders
  • logging
  • supportedHttpVersions
  • defaultRootObject

Extended example from current README.MD:

# serverless.yml

name: my-website
stage: dev

myWebsite:
  component: "@serverless/website"
  inputs:
    code:
      root: ./ # The root folder of your website project.  Defaults to current working directory
      src: ./src # The folder to be uploaded containing your built artifact
      hook: npm run build # A hook to build/test/do anything to your code before uploading
    region: us-east-1 # The AWS region to deploy your website into
    bucketName: myBucket # (Optional) The Bucket name where `src` files/folder will be upload. 
                         # If not provided, it will create random bucket name and upload `src` files
    env: # Environment variables to include in a 'env.js' file with your uploaded code.
      API_URL: https://api.com
    invalidationPaths:
      - 'images/*'
      - 'scr/*'
    originCustomHeaders:
      - headerName: String # eg. 'Accept-Encoding'
         headerValue: String # eg. 'gzip'
    viewerProtocolPolicy: String # both|redirect|https_only
    allowedHttpMethods: Array# ['GET', 'HEAD']
    logging: Boolean # true|false
    supportedHttpVersions: String # 'HTTP2' or 'HTTP1'
    defaultRootObject: String # 'https://domain.here/index.html'
    priceClass: Number # 1,2,3 [Use Only U.S., Canada and Europe| U.S., Canada, Europe, Asia, Middle East and Africa|Use All Edge Locations (Best Performance)]
    domain:
      privateZone: false
      domain: mywebsite.com
      subdomains:
        www: ${websiteComponentInstance}
      enableIPv6: Boolean # true|false

What do you think about it?

Enase avatar Oct 08 '19 11:10 Enase

It seems to be that lots of these new inputs should be handled by the domain component as well as the cloudfront component. The website component will likely just pass those in.

I feel like maybe we should group inputs based on the lower level component. So we'd put all cloudfront related ones under a single cloudfront object input. Still not sure about this though.

It's a tough call specially that we'd eventually like for this component to be provider agnostic 🤔

eahefnawy avatar Oct 14 '19 11:10 eahefnawy