2013-03-06 8 views
1

Хорошо, сделка заключена. Я использую эластичный бобовый стебель и имею две среды. У каждого из них есть свое имя и url, скажем, env-one = foo.elasticbeanstalk.com и env-two = bar.elasticbeanstalk.com.Автомобильная коммутация для окружающей среды для эластичного бобового стебля

Тогда у нас есть производственный домен: example.com.

example.com есть CNAME, указывающий на foo.elasticbeanstalk.com

по умолчанию толкая среды является окр-два.

Я нажимаю на среду по умолчанию и проверяю, что все работает нормально, как и обычная среда для разработчиков. Когда все довольны, я переключаю URL-адреса, чтобы среда-разработчик превратилась в производственную среду и наоборот.

Так что теперь, окр-два = foo.elasticbeanstalk.com и окр-один = bar.elasticbeanstalk.com

Проблема заключается в том, толкая среда по умолчанию все еще окр-два, но теперь это превратилось в производственной среды. Поэтому в следующий раз мне нужно нажать на dev, я должен определить, что хочу нажать на env-one.

git aws.push --environment env-one 

Итак, то, что я ищу, - это способ не определять, к какой среде я хочу нажать.

Заранее благодарим за ответы. Надеюсь, на это есть решение.

ответ

1

Несколько мыслей:

1) Это немного выходит за рамки вы спросили (и я не эксперт AWS), но, учитывая DNS задержки propigation, если это общественный сайт, переключение DNS может оставьте окно столкновения.

2) Вы можете определить второй псевдоним DNS «dev.elasticbeanstalk.com» и обменять его в одно и то же время, а затем всегда нажимать на него.

3) Если вы только отталкиваетесь от одного локального репо, вы можете использовать магию «git remote set-url» для переключения URL-адресов вокруг, чтобы вы нажимали на правый. Однако это, по-видимому, потенциально опасно для меня.

Если бы я собирался остаться с DNS, я бы использовал опцию #, а затем настроил систему мониторинга, которая срабатывает, если «dev». и "example.com" указывали на одну и ту же запись A.

1

При создании GIT репозиторий, чтобы развернуть на AWS EB с this instruction (я выбрал PHP один, другие языки рабочего процесса является то же самое) и запустить Е.Б. инициализации команда создает специальную .elasticbeanstalk папку, которая содержит описание для окружающей среды ,

При запуске eb start команда создается с использованием этого описания.

Каждый раз, когда вы звоните git aws.push команда - новый удаленный git URL-адрес генерируется. Это зависит от имени приложения, имени среды, идентификатора фиксации, локального времени и учетных данных AWS. Только этот сгенерированный URL-адрес используется в git aws.push Удаленные URL-адреса команды - git-репозитория игнорируются. Поскольку URL-адрес зависит от текущего времени, он всегда отличается.

Чтобы развернуть на другую среду по умолчанию, вы можете просто изменить EnvironmentName опции в .elasticbeanstalk \ конфигурационного файла (если ваши среды в одном приложении и имеют аналогичные параметры).

Если среда находится в другом приложении или один параметр отличается, я думаю, вы должны удалить .elasticbeanstalk папку и запустить Е.Б. иницилизации команды снова проходящих ответы, основанных на ваши уже существующих параметрах окружающей среды. После этого вы можете пройти eb init команда (поскольку среда уже существует) и просто продолжайте с git aws.push.