Que fait SST ?
Aperçu
SST (Serverless Stack) est un framework pour construire et déployer des applications full-stack sur AWS avec des abstractions de haut niveau pour Lambda, API Gateway, DynamoDB, S3 et les frameworks frontend. Il propose un développement local en direct connecté à de vrais services AWS, une liaison de ressources typée et sécurisée, ainsi qu'un support TypeScript sans configuration.
Instructions
- Lors de la définition de l'infrastructure, utilisez
sst.config.tsavec des composants typés commesst.aws.Function,sst.aws.Api,sst.aws.Bucketetsst.aws.Dynamo. - Pour connecter des ressources, utilisez la propriété
linksur les Functions pour accorder automatiquement les permissions IAM et injecter les variables d'environnement, puis accédez aux ressources liées viaResource.Namedans les handlers. - Pour le développement local, utilisez
sst devqui exécute Lambda localement avec rechargement à chaud tout en étant connecté à de vrais services AWS (DynamoDB, S3, SQS), avec prise en charge du débogage par points d'arrêt dans VS Code. - Pour le déploiement, utilisez
sst deploy --stage prodpour les environnements nommés,sst deploy --stage pr-${PR_NUMBER}pour les environnements de prévisualisation, etsst remove --stage devpour la destruction. - Pour déployer des frontends, utilisez les composants
sst.aws.Nextjs,sst.aws.Remixousst.aws.Astropour le SSR sur Lambda avec les assets statiques sur S3 + CloudFront. - Pour gérer les secrets, utilisez
sst secret set KEY valuepour un stockage chiffré et spécifique à chaque stage. - Pour organiser le code, gardez les handlers fins dans
packages/functions/comme orchestrateurs, et placez la logique métier danspackages/core/.
Exemples
Exemple 1 : Créer une API serverless avec DynamoDB
Demande de l'utilisateur : "Créer une API REST sur AWS avec DynamoDB en utilisant SST"
Actions :
- Définissez la table DynamoDB et l'API Gateway dans
sst.config.ts - Liez la table aux fonctions handler de l'API pour des permissions automatiques
- Implémentez les handlers CRUD en accédant à
Resource.MyTable.name - Exécutez
sst devpour un développement local en direct avec de vrais services AWS
Résultat : Une API REST serverless avec accès typé aux ressources et débogage en direct.
Exemple 2 : Déployer une application Next.js avec des environnements de prévisualisation
Demande de l'utilisateur : "Déployer mon application Next.js sur AWS avec des environnements de prévisualisation par PR"
Actions :
- Configurez le composant
sst.aws.Nextjsavec un domaine personnalisé et des ressources liées - Configurez l'intégration continue pour exécuter
sst deploy --stage pr-${PR_NUMBER}pour chaque pull request - Liez les ressources backend (API, base de données) au déploiement Next.js
- Ajoutez une étape de nettoyage avec
sst removelorsque la PR est fermée
Résultat : Un déploiement Next.js de production sur AWS avec des environnements de prévisualisation isolés pour chaque PR.
Directives
- Utilisez
linkplutôt que des politiques IAM manuelles ; SST génère automatiquement des permissions au plus bas niveau. - Accédez aux ressources liées via
Resource.Namedans les handlers ; ne codez jamais en dur les noms de table ou les ARN de bucket. - Utilisez
sst devpour le développement quotidien ; c'est plus rapide que de déployer sur AWS à chaque changement. - Créez des stages par développeur (
sst dev --stage alice) afin que chaque développeur dispose de ressources AWS isolées. - Gardez les handlers fins : logique métier dans
packages/core/, handlers danspackages/functions/. - Utilisez
sst secretpour les clés API et les identifiants ; ils sont chiffrés et spécifiques à chaque stage. - Configurez
sst deploy --stage pr-${PR_NUMBER}dans l'intégration continue pour les environnements de prévisualisation sur chaque pull request.