website
website copied to clipboard
IPv6 AAAA record is not created
Route 53 does not have IPv6 AAAA record after deploy. Would be better to have a way to configure (enable/disable) IPv6.
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.
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?
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 🤔