Об этом проекте

AWS Serverless Application Model (SAM) transform — это макрос CloudFormation с открытым исходным кодом, который преобразует упрощённые шаблоны SAM в стандартные шаблоны CloudFormation. Он расширяет нативный синтаксис CloudFormation более высокоуровневыми типами ресурсов, такими как AWS::Serverless::Function, AWS::Serverless::Api и AWS::Serverless::SimpleTable, позволяя разработчикам определять серверless-приложения с меньшим количеством шаблонного кода. Ключевые возможности включают: - **Преобразование шаблонов**: Добавление `Transform: AWS::Serverless-2016-10-31` в шаблон CloudFormation для включения типов ресурсов SAM. Transform разворачивает сокращённые определения в их полные эквиваленты CloudFormation, включая роли IAM, разрешения и сопоставления источников событий. - **Встроенные лучшие практики**: Автоматически предоставляет роли IAM с политиками наименьших привилегий, подключает управляемые политики, такие как AWSLambdaBasicExecutionRole, и применяет разумные значения по умолчанию для настроек runtime, handler и timeout. - **Локальное тестирование и отладка**: Интеграция с AWS SAM CLI (sam sync, sam local invoke, sam local start-api) для запуска и тестирования серверless-приложений локально перед развёртыванием в AWS. - **Шаблоны политик и коннекторы**: Поддержка переиспользуемых шаблонов политик IAM и коннекторов ресурсов для упрощения управления разрешениями между несколькими ресурсами. - **Поддержка нескольких сред выполнения**: Работает с runtime Lambda, включая Node.js, Python, Java, Go, .NET и Ruby, а также с развёртыванием образов контейнеров. Проект написан на Python (3.8+) и опубликован как пакет `aws-sam-translator` на PyPI. Разработка использует рабочий процесс на основе Makefile с `make init` для настройки зависимостей и `make pr` для запуска набора тестов. Репозиторий включает CI-процессы для тестирования сборки и обновления схемы, а также поддерживает вклад через Gitpod. Типичное использование включает написание шаблона SAM в YAML или JSON, развёртывание его с помощью SAM CLI или напрямую через CloudFormation и использование transform для генерации базовой инфраструктуры. Проект также предоставляет обширную документацию, включая руководство разработчика, спецификацию шаблонов и учебные материалы для изучения серверless-разработки в AWS.