Шаблоны CloudFormation: непрерывное тестирование инфраструктуры в виде кода - PullRequest
0 голосов
/ 05 октября 2018

В проекте мы используем некоторые сервисы AWS, такие как AWS Lambda, EC2, AWS API Gateway, ElastiCache и т. Д. Также у нас есть шаблон CloudFormation, который описывает всю нашу инфраструктуру.По мере разработки проекта мы начинаем использовать некоторые новые сервисы AWS или меняем конфигурацию некоторых из них, которые уже используются.Кроме того, мы должны поддерживать наш шаблон CloudFormation в актуальном состоянии.

И здесь мы сталкиваемся с проблемой, которая заключается в том, что мы должны быть уверены, что наш шаблон CloudFormation является действительным, правильным и что мы можем использовать его для создания инфраструктуры.если это будет необходимо.В таком случае нам нужно что-то вроде непрерывного тестирования нашего шаблона.Какие подходы больше подходят для этого?

Должны ли мы настраивать автоматическое создание стека из нашего шаблона CloudFormation в рамках процесса непрерывной интеграции и отслеживать изменения шаблона в нашем хранилище?Или есть лучшие решения?

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

Мы использовали cfn-python-lint в качестве предшественника к зданию.Если это не удастся, мы не будем строить.Правила, представленные в cfn-python-lint, намного более полны, чем aws cloudformation validate-template, и кроме того, они дают вам некоторые правила хорошей практики, а также дают вам основу для написания ваших собственных правил (которые мы используем для управления).

Кроме того, мы не строим ветви функций, мы строим только master.Мы даем разработчикам среду, с которой они могут работать, где они могут запускать конвейеры, которые мы обычно запускаем на master и в dev / staging / prod.Это совершенно отдельный аккаунт, где они почти полностью правят.Это, очевидно, не является надежным доказательством, так как наша область песочницы может не отражать то, что находится в dev / staging / prod, так как люди играют с ней, но это нам очень помогло.

0 голосов
/ 05 октября 2018

Вы можете выполнить простую проверку шаблонов CloudFormation с помощью команды CLI aws cloudformation validate-template .Это примерно эквивалентно статическому анализу кода для других языков: он проверяет такие вещи, как опечатки имени параметра и синтаксически допустимый шаблон JSON / YAML;но он весьма ограничен с точки зрения того, какую проверку он может выполнять.

Как говорится в этой статье, единственный надежный способ проверить, что шаблон CloudFormation будет создавать ресурсы так, как вы хотите / ожидаете, - это попробоватьэто, и это действительно означает создание стеков как часть вашего CI и процесса тестирования.Так как это может быть медленным в случае некоторых ресурсов и дорогостоящим в случае других, вы можете ограничить коммиты, на которых выполняется полное тестирование создания стека.

...