Как создать несколько сред Elasticbeanstalk, используя один шаблон облачной информации - PullRequest
0 голосов
/ 28 января 2019

Как создать более одной среды в одном приложении Elasticbeanstalk, используя облачную информацию.

У меня есть созданный шаблон облачной информации, который в основном создает конвейер CI / CD на AWS, предоставляя необходимые ресурсы.У меня есть проблема, когда речь заходит о создании нескольких сред (например, staging и prod) в одном приложении эластичного beanstalk с использованием шаблона.Когда я впервые внедряю шаблон, скажем, в промежуточную среду, он работает отлично, но когда я в этом случае повторно внедряю его для производственной среды, происходит сбой с ошибкой, что имя приложения уже существует.Я пытался использовать условия облачной информации, но безуспешно.Мне было интересно, если есть способ, которым я могу иметь условие, чтобы проверить, существует ли аналогичный ApplicationName, он пропускает создание имени приложения и создает среду под именем.

    WebApplication:
        Type: AWS::ElasticBeanstalk::Application
        Properties:
          ApplicationName: !Sub "${GithubRepo}"
          Description: "Application Description"

      WebApplicationEnvironment:
        Type: AWS::ElasticBeanstalk::Environment
        Properties:
          ApplicationName: !Ref WebApplication
          EnvironmentName: !Sub "${GithubRepo}-${Stage}"
          TemplateName: !Ref WebApplicationTemplate

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

1 Ответ

0 голосов
/ 28 января 2019

Мне было интересно, есть ли способ, которым я могу иметь условие, чтобы проверить, существует ли подобное ApplicationName, оно пропускает создание имени приложения и создает среду под именем.

Короткий ответ - да, если вы хотите создать собственный ресурс, который может проверять и возвращать значение, которое вы можете использовать для условия в вашем WebApplication.Но это ужасная идея, и вот почему: ресурсы вашего сценического стека также будут использоваться в prod, но поскольку вы неявно связываете их между стеками, облачная информация не будет знать, как обрабатывать обновления.

Если вы хотите, чтобы отношения WebApplication и WebApplicationEnvironment были однозначными, лучше всего создавать их в разных стеках.Вы можете использовать Stack Exports для представления данных одного стека другому стеку.Экспорт стеков защитит вас от непреднамеренных изменений в ресурсах, от которых зависят другие стеки.

Но лучшим подходом для вас, вероятно, было бы создание двух полных различных стеков для каждой среды.В противном случае вы не сможете протестировать процесс обновления продукта (при обновлении вы будете обновлять продукт).

Если вы действительно пытаетесь сократить расходы, поместите все среды втот же стек.Если вы в любом случае не можете использовать их для различения различных сред, лучше совместно использовать стек, чем неявно делить ресурсы между стеками.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...