À propos du projet

Le modèle de transformation AWS Serverless Application Model (SAM) est une macro CloudFormation open-source qui traduit des modèles SAM simplifiés en modèles CloudFormation standard. Il étend la syntaxe native de CloudFormation avec des types de ressources de niveau supérieur tels que AWS::Serverless::Function, AWS::Serverless::Api et AWS::Serverless::SimpleTable, permettant aux développeurs de définir des applications serverless avec moins de code passe-partout. Les principales capacités incluent : - **Transformation de modèles** : Ajoutez `Transform: AWS::Serverless-2016-10-31` à un modèle CloudFormation pour activer les types de ressources SAM. La transformation développe les définitions abrégées en leurs équivalents CloudFormation complets, y compris les rôles IAM, les autorisations et les mappages de sources d'événements. - **Bonnes pratiques intégrées** : Provisionne automatiquement des rôles IAM avec des politiques de moindre privilège, attache des politiques gérées comme AWSLambdaBasicExecutionRole et applique des valeurs par défaut sensées pour le runtime, le handler et les paramètres de délai d'expiration. - **Tests et débogage locaux** : S'intègre avec l'AWS SAM CLI (sam sync, sam local invoke, sam local start-api) pour exécuter et tester des applications serverless localement avant de les déployer sur AWS. - **Modèles de politiques et connecteurs** : Prend en charge des modèles de politiques IAM réutilisables et des connecteurs de ressources pour simplifier la gestion des autorisations sur plusieurs ressources. - **Support multi-runtimes** : Fonctionne avec les runtimes Lambda, y compris Node.js, Python, Java, Go, .NET et Ruby, ainsi que les déploiements d'images conteneurisées. Le projet est écrit en Python (3.8+) et publié sous le nom de package `aws-sam-translator` sur PyPI. Le développement utilise un flux de travail basé sur Makefile avec `make init` pour la configuration des dépendances et `make pr` pour exécuter la suite de tests. Le référentiel comprend des workflows CI pour les tests de construction et les mises à jour de schéma, et prend en charge les contributions via Gitpod. L'utilisation typique implique l'écriture d'un modèle SAM en YAML ou JSON, son déploiement avec le SAM CLI ou directement via CloudFormation, et l'exploitation de la transformation pour générer l'infrastructure sous-jacente. Le projet fournit également une documentation complète, notamment un guide du développeur, une spécification de modèle et des tutoriels d'atelier pour apprendre le développement serverless sur AWS.