Як я можу зробити процес налагодження шаблону швидшим, або я застряг назавжди, помічаючи свої помилки через півгодини після того, як їх зробив?
Ось кілька найкращих практичних рекомендацій, зосереджених конкретно на покращенні швидкості ітерацій складної розробки шаблону CloudFormation:
Використовуйте інструменти CloudFormation для перевірки шаблонів та стекових оновлень
AWS вже виклав це у своєму власному документі Best Practices , тому я не буду повторювати їх:
Суть цього кроку полягає у виявленні очевидних синтаксичних або логічних помилок перед тим, як фактично виконати створення / оновлення стека.
Тестові ресурси ізольовано
Перш ніж використовувати будь-який окремий Ресурс CloudFormation у складному стеку, переконайтесь, що ви глибоко розумієте всю ступінь поведінки створення / оновлення / видалення цього Ресурсу, включаючи будь-які обмеження щодо використання та типовий час запуску / розірвання, перевіряючи їх поведінку в менших автономних стеках. спочатку.
- Якщо ви розробляєте або використовуєте будь-які сторонні користувацькі ресурси, пишіть модульні тести, використовуючи відповідні бібліотеки для мовної платформи, щоб переконатися, що логіка програми поводиться належним чином у всіх випадках використання.
- Майте на увазі, що тривалість часу для створення / оновлення / видалення окремого ресурсу може сильно відрізнятися залежно від типів ресурсів, залежно від поведінки базових викликів API. Наприклад, для створення / оновлення / видалення складного
AWS::CloudFront::Distribution
ресурсу іноді може знадобитися 30-60 хвилин , а для AWS::EC2::SecurityGroup
оновлення - за секунди.
- Окремі ресурси можуть мати помилки / проблеми / обмеження при їх реалізації, які набагато простіше налагодити та розробити обхідні шляхи, коли тестуються ізольовано, а не в межах значно більшого стека. Пам’ятайте про такі обмеження, як Обмеження послуг AWS залежно від налаштувань Вашого індивідуального облікового запису AWS або Доступність послуг регіону в залежності від регіону, в якому ви створюєте свій стек.
Створюйте складні стеки невеликими кроками
При виконанні створення / оновлення стека, збій в будь-якому окремому Ресурсі призведе до того, що стек відкатить весь набір змін Ресурсу, що може без потреби знищити інші успішно створені Ресурси і займе дуже багато часу при створенні складного стека з довгим графік залежностей пов'язаних ресурсів.
Рішенням цього є складання стека поступово меншими пакетами оновлення, додаючи по одному (або декілька) ресурсів. Таким чином, якщо / коли в процесі створення / оновлення ресурсу виникає збій, відкат не спричиняє знищення всіх ресурсів вашого стека, лише набір ресурсів, змінений в останньому оновленні.
Відстежуйте хід оновлення стека
Обов’язково слідкуйте за ходом оновлення стека , переглядаючи події стека під час створення / оновлення. Це буде відправною точкою для налагодження подальших проблем з окремими ресурсами.