Sobre el proyecto

La transformación del Modelo de Aplicación Serverless de AWS (SAM) es una macro de CloudFormation de código abierto que traduce plantillas SAM simplificadas a plantillas estándar de CloudFormation. Extiende la sintaxis nativa de CloudFormation con tipos de recursos de nivel superior como AWS::Serverless::Function, AWS::Serverless::Api y AWS::Serverless::SimpleTable, permitiendo a los desarrolladores definir aplicaciones serverless con menos código repetitivo. Las capacidades clave incluyen: - **Transformación de plantillas**: Agrega `Transform: AWS::Serverless-2016-10-31` a una plantilla de CloudFormation para habilitar los tipos de recursos SAM. La transformación expande las definiciones abreviadas a sus equivalentes completos de CloudFormation, incluyendo roles de IAM, permisos y asignaciones de fuentes de eventos. - **Mejores prácticas integradas**: Aprovisiona automáticamente roles de IAM con políticas de privilegio mínimo, adjunta políticas administradas como AWSLambdaBasicExecutionRole y aplica valores predeterminados sensatos para configuración de runtime, handler y tiempo de espera. - **Pruebas y depuración locales**: Se integra con la CLI de AWS SAM (sam sync, sam local invoke, sam local start-api) para ejecutar y probar aplicaciones serverless localmente antes de implementarlas en AWS. - **Plantillas de políticas y conectores**: Soporta plantillas de políticas de IAM reutilizables y conectores de recursos para simplificar la gestión de permisos en múltiples recursos. - **Soporte multi-runtime**: Funciona con runtimes de Lambda incluyendo Node.js, Python, Java, Go, .NET y Ruby, así como implementaciones de imágenes de contenedor. El proyecto está escrito en Python (3.8+) y se publica como el paquete `aws-sam-translator` en PyPI. El desarrollo utiliza un flujo de trabajo basado en Makefile con `make init` para la configuración de dependencias y `make pr` para ejecutar la suite de pruebas. El repositorio incluye flujos de trabajo de CI para pruebas de compilación y actualizaciones de esquemas, y soporta contribuciones a través de Gitpod. El uso típico implica escribir una plantilla SAM en YAML o JSON, implementarla con la CLI de SAM o directamente a través de CloudFormation, y aprovechar la transformación para generar la infraestructura subyacente. El proyecto también proporciona documentación extensa incluyendo una guía para desarrolladores, especificación de plantillas y tutoriales de taller para aprender desarrollo serverless en AWS.