Amazon DVA-C02: CloudFormation и инфраструктура как код (SAM, CDK) — Руководство по подготовке

Часть AWS Developer Associate DVA-C02 — Руководство по подготовке. Практикуйтесь с проверенными ответами в центре экзаменов Amazon, или пройдите тесты на время на ExamRoll.io.

Пользовательские ресурсы, защита стека и ускорители локального/инкрементального развертывания

Используйте пользовательские ресурсы, когда в CloudFormation отсутствует нативный тип ресурса, реализуя провайдеры на базе Lambda, которые следуют протоколу ответов CloudFormation для событий Create/Update/Delete. Создавайте идемпотентные обработчики, отвечайте с помощью cfn-response или фреймворка CloudFormation CLI и обрабатывайте длительные операции с помощью событий о ходе выполнения или путем сохранения состояния в DynamoDB. Помните о тайм-аутах пользовательских ресурсов: CloudFormation имеет максимальный тайм-аут операции стека, и ресурсы на базе Lambda должны завершиться в этом окне, иначе произойдет откат стека. Защищайте критически важные ресурсы с помощью политик стека (SetStackPolicy), чтобы блокировать замену или обновление указанных логических идентификаторов во время обновлений стека, и включайте защиту от удаления для сред, которые вы не можете позволить себе удалить. Для инкрементальной и локальной разработки используйте AWS SAM CLI (sam build, sam local invoke, sam local start-api) и sam sync для быстрых обновлений только кода, а также CDK watch или cdk deploy с артефактами для обновления только измененных ресурсов; эти инструменты вычисляют хеши артефактов (хеширование артефактов Lambda), поэтому перепубликуется только измененный код. Интегрируйте наборы изменений CloudFormation (ChangeSets), версионирование Lambda (AutoPublishAlias в SAM или lambda.Version в CDK) и смещение трафика CodeDeploy для безопасных развертываний. Распространенные ошибки включают превышение лимитов шаблона или параметров, неправильное использование межаккаунтных импортов и инициализацию тяжеловесных SDK-клиентов внутри обработчиков, что вызывает задержки при холодном старте — предпочитайте глобальные, лениво инициализируемые клиенты с настраиваемыми тайм-аутами и логикой повторных попыток.

Практическая задача: сценарий использования

Сценарий: AcmeMedia управляет организацией AWS с несколькими аккаунтами, включая отдельные аккаунты Dev, Staging и Prod в регионе us-east-1. Бессерверный сервис обработки изображений (Lambda + S3 + DynamoDB) должен развертываться единообразно во всех аккаунтах, при этом общая чувствительная конфигурация должна храниться централизованно.

Задача: Развернуть один и тот же стек CloudFormation/SAM/CDK в нескольких аккаунтах и обеспечить безопасную доступность артефактов кода Lambda в каждом целевом аккаунте, не храня секреты в шаблонах.

Рекомендуемый подход:

  1. Используйте AWS CloudFormation StackSets с разрешениями, управляемыми сервисом (

undefined

), а затем aws cloudformation create-stack-instances для развертывания в целевые аккаунты и регионы, или настройте CDK Pipelines для синтеза и развертывания в каждый аккаунт с помощью ролей. 2. Упакуйте артефакты Lambda с помощью публикации артефактов CDK (cdk bootstrap в каждом аккаунте/регионе) или sam package в бакет S3 в каждом целевом аккаунте; автоматизируйте копирование артефактов через CI (CodeBuild с использованием aws s3 cp или репликации S3) и используйте cdk deploy или sam deploy с учетными данными целевого аккаунта. 3. Храните чувствительную конфигурацию в AWS Secrets Manager в каждом аккаунте, ссылаясь на нее в шаблоне через динамические ссылки (

undefined

), или разверните реплицированный секрет с помощью функции репликации Secrets Manager, избегая использования параметров NoEcho. 4. Используйте наборы изменений (ChangeSets) (create-change-set, execute-change-set), включите защиту от удаления на производственных стеках и применяйте политики стека для предотвращения случайной замены таблиц DynamoDB или бакетов S3 во время обновлений.

Обоснование: StackSets и развертывания на основе конвейеров обеспечивают безопасное, аудируемое распространение на несколько аккаунтов/регионов, в то время как публикация артефактов и секреты для каждого аккаунта сохраняют учетные данные локальными и аудируемыми. Наборы изменений, защита от удаления и политики стека снижают риски при итеративных развертываниях.


Amazon DynamoDB и проектирование NoSQL · Все домены · Развертывание и CI

Отработать эти вопросы → · Тесты на время на ExamRoll.io →

Pass the whole exam — not just this question

You found this answer. Get every verified question and explanation in one place, and save hours of prep. Free to start.

Сдайте экзамен →

Просмотреть Amazon →

Related guides

Все включено

Одна подписка. Каждый экзамен.

Каждый план открывает неограниченный поиск ответов, практические тесты, объяснения AI и полную библиотеку ресурсов — на более чем 20 языках.

Ежемесячно
24.87
Just €0.83/day
Все включено:
  • Неограниченный поиск ответов
  • Неограниченные практические тесты
  • Объяснения на основе AI
  • Полная библиотека ресурсов
  • 20+ языков
  • Еженедельные обновления контента
  • Награды и рефералы
  • Приоритетная поддержка
Начать бесплатную пробную версию

Кредитная карта не требуется*

Лучшая цена
12 месяцев
179.87
Just €0.49/daySave 40%
Все включено:
  • Неограниченный поиск ответов
  • Неограниченные практические тесты
  • Объяснения на основе AI
  • Полная библиотека ресурсов
  • 20+ языков
  • Еженедельные обновления контента
  • Награды и рефералы
  • Приоритетная поддержка
Начать бесплатную пробную версию

Кредитная карта не требуется*

✓ Включен бесплатный план · ✓ Отмена в любое время · ✓ Все планы открывают полный продукт