Назначенные имена хостов dyyyexample.cloudfront.net
и dzzzexample.cloudfront.net
, которые направляют трафик в ваши дистрибутивы CloudFront, отправляются в одно и то же место.CloudFront не может видеть ваши записи псевдонимов DNS, поэтому он не знает, какой псевдоним использовался.
Вместо этого он просматривает SNI TLS и заголовок HTTP Host
, которые отправляет браузер.Он использует эту информацию для соответствия с альтернативным доменным именем для вашего дистрибутива - без изменения DNS.
Имя хоста вашего сайта, example.com
, настроено только как альтернативное доменное имя в одном из ваших дистрибутивов.поскольку CloudFront не позволяет вам предоставлять одно и то же значение более чем в одном распределении.
Если вы поменяете эту запись альтернативного имени домена на другой, весь трафик будет перемещен в другой дистрибутив.
Короче говоря, CloudFront напрямую и изначально не поддерживает Blue / Green или Canary.
Временное решение: использовать триггер Lambda @ Edge и файл cookie, чтобы привязать каждого зрителя к одному origin или другой.Триггер запроса источника Lambda @ Edge позволяет изменить источник, пока запрос находится в полете.
В документации есть A / B пример тестирования , но этот пример меняет путь,См. Примеры динамического выбора источника , чтобы узнать, как заменить источник.Комбинируя логику этих двух, можно проводить A / B-тестирование в двух сегментах (или любых двух альтернативных бэкэндах).