В Интерфейсе командной строки (CLI) AWS SAM добавлена поддержка языковых расширений AWS CloudFormation для ускорения локальной бессерверной разработки
AWS SAM CLI теперь поддерживает языковые расширения AWS CloudFormation, что позволяет сократить дублирование в шаблонах «инфраструктура как код» (IaC), сохранив при этом весь рабочий процесс локальной разработки. Это ускоряет бессерверную разработку, позволяя однократно определить ресурсы, а затем выполнять локальные итерации, не дожидаясь облачных развертываний.
Разработчикам часто приходится определять несколько похожих ресурсов, таких как функции Lambda, таблицы DynamoDB или темы SNS, на основе одного шаблона. Однако разработчики, использующие SAM CLI для создания, тестирования и развертывания бессерверных приложений, ранее не могли обрабатывать шаблоны с языковыми расширениями CloudFormation. Это требовало выбора между сокращением дублирования шаблонов и использованием SAM CLI для локальной разработки. Теперь SAM CLI обрабатывает языковые расширения в памяти для локальных операций, сохраняя исходный шаблон для развертывания CloudFormation. Вы можете определить ресурсы однократно и тестировать их локально со всеми командами SAM CLI для выявления таких ошибок, как неверный синтаксис или отсутствие зависимостей, перед развертыванием. Это сокращает циклы итераций и время, затрачиваемое на отладку неудачных развертываний в облаке.
Для начала загрузите или обновите SAM CLI до последней версии. Добавьте преобразование AWS::LanguageExtensions в шаблон SAM и используйте функцию Fn::ForEach для создания нескольких ресурсов на основе одного определения. Команды SAM CLI, включая sam build, sam local invoke, sam sync, sam local start-api и sam validate, автоматически расширяют циклы и обрабатывают каждый сгенерированный ресурс. Расширенные функции можно вызывать по имени, например sam local invoke AlphaFunction. SAM CLI также поддерживает функции Fn::Length, Fn::ToJsonString, Fn::FindInMap с DefaultValue и условные атрибуты DeletionPolicy и UpdateReplacePolicy.
Подробнее см. в руководстве для разработчиков по SAM CLI и в публикации блога о запуске.