Чтобы настроить AliasTarget, вам просто нужно предоставить DNS-имя CloudFront для параметра DNSName, а не ID дистрибутива.Вы можете сделать это с помощью:
!GetAtt WebAppCloudFrontDistribution.DomainName
Я предполагаю, что WebAppCloudFrontDistribution является логическим идентификатором ресурса AWS :: CloudFront :: Distribution в вашем шаблоне, а не параметром.Если это на самом деле параметр, просто задайте в качестве значения параметра DNS-имя, указанное для распределения на панели мониторинга консоли AWS для CloudFront.
Есть некоторые другие вещи, которые вам необходимо исправить в шаблоне.:
- HostedZoneName должно быть именем размещенной зоны Route53, а не полным доменным именем, которое вы хотите использовать.Лично я предпочитаю использовать свойство HostedZoneId для ресурсов AWS :: Route53 :: RecordSet, поскольку оно более понятно, каково значение этого свойства, но каждому из них свой.(Примечание. Свойство HostedZoneId для ресурса AWS :: Route53 :: RecordSet должно быть размещенной зоной HostedZoneId для ВАШЕЙ зоны, а не значением AliasTarget HostedZoneId.)
- Имя должно быть именем DNS, которое вы хотите использоватьбыть CNAME для дистрибутивного ресурса CloudFront.
- Я знаю, что это немного странно, но для псевдонимов цели вы должны установить тип либо «A» (для IPv4), либо «AAAA» (IPv6).Я рекомендую сделать и то и другое - вы можете сделать это, создав дубликат вашего ресурса AWS :: Route53 :: RecordSet, но указав тип «AAAA» вместо «A».
Наконец, обратите внимание, что вЧтобы это работало, вам также необходимо добавить полное доменное имя в качестве альтернативного имени для ресурса распределения CloudFront - вы можете установить его, используя свойство «Aliases» свойства «DistributionConfig» ресурса распределения в вашем шаблоне.или путем настройки этого вручную для параметров распространения в консоли AWS, если вы не создаете ресурс в этом шаблоне.