kzen.dev
  • Вопросы
  • Метки
  • Пользователи
Оповещения
Вознаграждения
Регистрация
После регистрации, сможете получать уведомления об ответах и комментариях на Ваши вопросы.
Вход
Если у Вас уже есть аккаунт, войдите чтобы проверить новые уведомления.
Тут будут вознаграждения за добавленные вопросы, ответы и комментарий.
Дополнительно
Источник
Редактировать
 Christopher
Christopher
Вопрос

Как можно быстро и эффективно отладить шаблоны CloudFormation?

CloudFormation - это мощное предложение AWS, которое позволяет программно создавать стеки ресурсов AWS, такие как веб-уровень приложения, кластер высокопроизводительных вычислений, или весь стек приложений, с помощью одного вызова API. Это очень мощный инструмент. Его использование, безусловно, считается хорошей практикой AWS, особенно в сочетании с Chef, Puppet, или cloud-init. Отладка его доводит меня до безумия.

Возьмем пример с производством: Стоковые mongodb cluster templates не будут работать для меня. Я не знаю, почему. Я уверен, что это что-то простое, как это почти всегда и бывает. Моя проблема не в том, что я не могу понять, что не так. А в том, что стеку требуется от 20 до 30 минут, чтобы выйти из строя, а затем еще три или четыре минуты на удаление, если предположить, что он вообще удаляет ресурсы правильно.

Что я упускаю? Я знаю о флаге --disable-rollback и использую его как кислород. Я давно научился оборачивать сообщения о выходе с помощью cfn-signal и сбрасывать их как балласт с тонущего корабля. Как я могу ускорить процесс отладки шаблонов, или я навсегда застрял, замечая свои ошибки через полчаса после их совершения?

70 2012-08-07T22:04:46+00:00 12
 approxiblue
approxiblue
Редактировал вопрос 2-го января 2017 в 4:28
Программирование
amazon-web-services
amazon-cloudformation
Решение / Ответ
Luciano Issoe
Luciano Issoe
1-го сентября 2012 в 9:56
2012-09-01T21:56:06+00:00
Дополнительно
Источник
Редактировать
#16895716

Используйте команду aws cloudformation validate-template в инструменте AWS CLI. Она только проверяет, является ли ваш шаблон правильным JSON или YAML, а не правильность ваших ключей и значений (например, не проверяет опечатки в ключах).

 Community
Community
Редактировал ответ 26-го февраля 2019 в 8:50
39
0
 Christopher
Christopher
11-го июля 2013 в 9:54
2013-07-11T21:54:54+00:00
Дополнительно
Источник
Редактировать
#16895719

Другой вариант, через год, абстрактный этих шаблонов для 3-й партии библиотеки, такие как тропосфере. Эта библиотека создает полезные данные JSON для вас, и делает много проверки по пути. Это также решает и"Вау управляющий 1000 строк JSON-файл, уверен, это грустно и" проблема.

22
0
 wjordan
wjordan
2-го января 2017 в 3:58
2017-01-02T03:58:35+00:00
Дополнительно
Источник
Редактировать
#16895723

как я могу сделать процесс отладки шаблона быстрее, или я застрял навсегда замечая моих ошибок полчаса после того, как я их делаю?

Вот несколько лучших-практика предложения, с упором на повышение скорости итерации комплекс CloudFormation для-шаблон развития:

Использовать инструменты CloudFormation для проверки шаблонов и стек обновления

АРМ уже изложил в своей собственной наилучшая практика документ, так что я выиграл'т повторять их:

  • Проверка шаблонов перед их использованием
  • Создать наборы изменений перед обновлением Stacks

Смысл этого шага заключается в том, чтобы поймать явных синтаксических и логических ошибок, прежде чем фактически выполняет создание стека/обновление.

Тест ресурсов в изоляции

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

  • Если вы разрабатываете или используете какие-либо сторонние пользовательские ресурсы, писать юнит-тесты, используя соответствующие библиотеки для языков платформы, чтобы убедиться, что логика приложения работает, как ожидалось во всех случаях использования.
  • Имейте в виду, что количество времени для отдельных ресурсов для создания/обновления/удаления может широко варьироваться между типы ресурсов, в зависимости от поведения базового API-вызовов. Например, комплекс AWS::CloudFront::Distribution ресурсов может иногда принимать 30-60 минут создание/обновление/удаление, а AWS::EC2::SecurityGroup обновления в секундах.
  • Отдельные ресурсы могут иметь ошибки/проблемы/ограничения в их осуществлении, что значительно упрощает отладку и разработку решения при проведении испытания в изоляции, а не в пределах гораздо большего стека. Имейте в виду ограничения, такие как сервис AWS ограничения в зависимости от ваших индивидуальных настроек аккаунта AWS, или в наличии области услуг в зависимости от региона, в котором вы создаете свой стек.

Строить сложные стеки с небольшим шагом

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

Решение этого состоит в том, чтобы построить свой стек постепенно в небольших пакетах обновления, добавив одну (или несколько) одновременно. Таким образом, если/когда происходит сбой в создание/обновление ресурса, откат не'т привести свой весь стек'ы ресурсы должны быть уничтожены, просто набор ресурсов, изменено в последнем обновлении.

Следить за ходом обновления стека

Будьте уверены, чтобы следить за ходом вашего Update стек путем просмотра стека'события s при исполнении создание/обновление. Это станет отправной точкой для отладки дальнейших проблем с отдельных ресурсов.

10
0
Wade Matveyenko
Wade Matveyenko
11-го июля 2013 в 3:59
2013-07-11T15:59:45+00:00
Дополнительно
Источник
Редактировать
#16895718

Обращали ли вы внимание на редактор шаблонов AWS CloudFormation, который входит в AWS Toolkit for Eclipse? В нем есть подсветка синтаксиса, завершение утверждений и развертывание в AWS CloudFormation.

9
0
 Aitch
Aitch
11-го июля 2013 в 2:02
2013-07-11T14:02:39+00:00
Дополнительно
Источник
Редактировать
#16895717

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

В моем случае с vim я работал намного лучше, когда потратил некоторое время на установку плагинов для синтаксиса json, а также (наконец-то) понял технику складывания, чтобы легко перемещаться по большим CF-файлам. Мой vim теперь подсказывает опечатки (запятые там, где их не должно быть и т.д.), а цветовая подсветка экономит много времени, давая четкие визуальные подсказки.

Это может помочь смягчить синтаксические ошибки, но логические ошибки в шаблоне лучше исправлять другими инструментами. Надеюсь, когда-нибудь на CF появится режим "предварительного просмотра".

5
0
 Jason
Jason
28-го июня 2017 в 11:24
2017-06-28T23:24:39+00:00
Дополнительно
Источник
Редактировать
#16895725

Для Иды компании JetBrains (IntelliJ идея WebStorm PhpStorm именно PyCharm RubyMine AppCode CLion Гогланд DataGrip райдер для Андроид студии ), есть в сервис AWS CloudFormation с плагин, который поддерживает глубокую проверку в JSON и YAML глядя шаблонов

4
0
Pat Myron
Pat Myron
11-го июня 2019 в 3:36
2019-06-11T03:36:15+00:00
Дополнительно
Источник
Редактировать
#16895727

В в AWS CloudFormation для Линтер обеспечивает дополнительный статический анализ за сервис AWS CloudFormation для проверки шаблона`

Он будет информировать вас, какие типы ресурсов и типы инстансов будут недоступны в некоторых регионах, проверки значений свойств в отношении допустимых значений, поймать зависимости круговой ресурсов, синтаксических ошибок, и многое другое

В дополнение к CLI, один из самых популярных механизмов помнить, для запуска Линтер является установка редактора плагин как расширение Visual Studio кода, которая работает на каждый файл сохранить

Другие механизмы, такие как пре-коммит хуки git, которые описаны here

Визуальная студия код расширения, например скриншот

Pat Myron
Pat Myron
Редактировал ответ 17-го октября 2019 в 6:27
3
0
 Jason
Jason
28-го июня 2017 в 11:21
2017-06-28T23:21:32+00:00
Дополнительно
Источник
Редактировать
#16895724

Помимо командной строки AWS сервис AWS CloudFormation для проверки шаблона команда есть узел на основе [CFN по-проверки] инструмент2, что делает более глубокой проверки.

2
0
 ChaitanyaBhatt
ChaitanyaBhatt
18-го ноября 2014 в 12:55
2014-11-18T00:55:19+00:00
Дополнительно
Источник
Редактировать
#16895720

Если вы имеете дело с машинами ЕС2, то я бы рекомендовал вам войти в машину EC2 и хвост в придачу.лог-файл (файл/var/журнал/загрузки.войдите в RHEL6/в CentOS). Этот файл обновляется с все ваши действия оболочки (виды деятельности, как: установка, загрузка файлов, копирование файлов и т. д.).

Кроме того, использовать такие редакторы как http://www.jsoneditoronline.org/ чтобы сделать древовидное представление в формате JSON. Это поможет вам проверить заказ элементов JSON.

И при обновлении файлов всегда использовать такие инструменты, как http://www.git-tower.com/blog/diff-tools-mac/ или систему контроля версий, чтобы убедиться, что вы не случайно изменить что-то, что может сломать ваш сценарий.

2
0
 Mikelax
Mikelax
21-го марта 2015 в 5:40
2015-03-21T05:40:47+00:00
Дополнительно
Источник
Редактировать
#16895721

Недавно новая функция добавлена в CloudFormation Для в декабре прошлого года было добавление иные типы параметров. Эти новые типы позволяют ваши шаблоны чтобы выполнить сильнее проверке данных, а также может и"не-быстро" при создании ресурсов и вложенных CloudFormation для стеков. У вас также есть возможность предоставить приятнее для человеческого восприятия пользовательские сообщения об ошибках, когда недопустимые значения передаются в использование нового атрибут ConstraintDescription.

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

Например:

"Parameters" : {
  "SingleGroup": { "Type": "AWS::EC2::SecurityGroup::Id", ...},
  "GroupList": {"Type": "List<AWS::EC2::SecurityGroup::Id>", ...}
}
1
0
 VictorPro
VictorPro
18-го ноября 2015 в 7:41
2015-11-18T19:41:43+00:00
Дополнительно
Источник
Редактировать
#16895722

Вы также можете воспользоваться конструктором CloudFormation для свободных от Amazon здесь: https://console.aws.amazon.com/cloudformation/designer/home?region=us-east-1

Просто вставьте ваш шаблон (JSON) с о "шаблон" в панели, а затем нажмите на символ галочку, чтобы подтвердить свой шаблон. Любые ошибки будут отображаться в "; панель ошибке&quot.

Надеюсь, что это помогает.

0
0
 WillRubel
WillRubel
9-го августа 2018 в 3:29
2018-08-09T03:29:42+00:00
Дополнительно
Источник
Редактировать
#16895726

Пожалуйста, мой заказ валидатор CloudFormation Для в https://pypi.org/project/cloudformation-validator/

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

0
0
Добавить вопрос
Категории
Все
Технологий
Культура / Отдых
Жизнь / Искусство
Наука
Профессии
Бизнес
Пользователи
Все
Новые
Популярные
1
Ilya Smirnov
Зарегистрирован 5 дней назад
2
Денис Васьков
Зарегистрирован 1 неделю назад
3
Dima Patrushev
Зарегистрирован 1 неделю назад
4
sirojidddin otaboyev
Зарегистрирован 2 недели назад
5
Елена Гайдамамакинат
Зарегистрирован 2 недели назад
ID
KO
RU
© kzen.dev 2023
Источник
stackoverflow.com
под лицензией cc by-sa 3.0 с атрибуцией