В настоящее время я работаю над расширением этого репо. Он содержит исходный код для развертывания веб-приложения sapper / svelte с Serverless Framework на AWS. Я думаю о том, как расширить serverless.yml
, чтобы включить маршрутизацию DNS Route53 в Cloudfront, но я не могу осмыслить это. Плагин serverless-domain-manager, похоже, разработан для Route53 to API Gateway маршрутизации, но я развертываю свое приложение только с Cloudfront, корзиной S3 и обработчиком Lambda @ Edge, выполняющим рендеринг приложения на стороне сервера.
Добавление и обновление записей DNS в Route 53 в Cloudfront с помощью Serverless Framework
Ответы (1)
Я сделал нечто подобное здесь >.
Я обрезал serverless.yml
для соответствующих частей:
WebAppCloudFrontDistribution:
Type: AWS::CloudFront::Distribution
DependsOn:
- WebAppS3Bucket
Properties:
DistributionConfig:
### content trimmed
Aliases:
- 'www.example.com'
### content trimmed
ViewerCertificate:
AcmCertificateArn: 'CertificateArn' # in the linked repo I'm using a plugin to auto generate the certificate
SslSupportMethod: sni-only
WebsiteDNSName:
Type: AWS::Route53::RecordSetGroup
Properties:
HostedZoneId: 'HostedZoneId' # Taken from the AWS Console
RecordSets:
- Name: 'www.example.com'
Type: A
AliasTarget:
HostedZoneId: Z2FDTNDATAQYW2
DNSName: !GetAtt [WebAppCloudFrontDistribution, DomainName]
EvaluateTargetHealth: false
person
Erez
schedule
21.08.2019
Простите за очень поздний ответ, но когда я добавляю ваш фрагмент из репозитория в свой проект, я получаю следующее предупреждение во время развертывания:
A valid file to satisfy the declaration 'file(certinfo.yml):CertificateArn' could not be found.
. Почему это не работает? (Обнаружен в месте получения сертификата зрителя, AcmCertificateArn: ${file(${self:custom.cert}):CertificateArn}
).
- person SearchingSolutions; 31.08.2019
Вам нужно будет запустить
serverless create-cert --stage $STAGE
, чтобы сначала создать файл сертификата с помощью подключаемого модуля. Вы увидите предупреждение при запуске serverless create-cert
, но можете проигнорировать его, поскольку файл будет сгенерирован после выполнения команды. Затем, как только вы запустите serverless deploy
, файл станет доступен.
- person Erez; 31.08.2019
Мне любопытно: как я могу сделать так, чтобы без сервера перенаправлял example.com на www.example.com?
- person SearchingSolutions; 01.09.2019
Я думаю, вы сможете использовать
- Name: 'example.com'
- person Erez; 01.09.2019