Tester et déployer vos API

Développer des applications sur AWS

Ricardo Sueiras

Principal Technologist

Infrastructure-as-Code pour les développeurs

 

iac

  • Les applis « cloud native » se déploient avec l'Infrastructure-as-Code (IaC).
  • Définissez les ressources infonuagiques dans des fichiers de configuration.
  • Évite la configuration manuelle dans la console AWS (clickops).
Développer des applications sur AWS

AWS CloudFormation

 

cloudformation

  • Le service IaC de base d'AWS.
  • Définissez les ressources AWS avec des gabarits YAML ou JSON.
Développer des applications sur AWS

AWS Cloud Development Kit (CDK)

 

cdk

  • CDK définit l'IaC avec du code.
  • Programmez en Python, TypeScript ou Java plutôt qu'en YAML ou JSON.
  • Les applis se synthétisent en gabarits CloudFormation au déploiement.
Développer des applications sur AWS

AWS Serverless Application Model (SAM)

  • Étend CloudFormation.
  • Syntaxe simplifiée pour les ressources sans serveur et les API.
  • Sert de couche de transformation.
  • Traduit la syntaxe SAM en gabarits CloudFormation complets.

 

sam

Développer des applications sur AWS

Fonctionnalités de SAM

  • Génére des rôles IAM à privilèges minimaux, avec marge d'ajustement.
  • Définissez votre pipeline de déploiement en configuration.
  • Emballez et déployez avec sam build et sam deploy.
  • Décelez tôt les erreurs de gabarit avec sam validate.
  • Émulez Lambda localement avec sam local start-lambda.
    • Fournit un point de terminaison local persistant

 

sam features

Développer des applications sur AWS

Tester avec SAM

  • Construire, invoquer et tester localement avant le déploiement.
  • Tester les fonctions Lambda et les intégrations API Gateway.
  • Invoquez une fonction localement avec sam local invoke.
    • Invocation unique
  • Émulez API Gateway avec sam local start-api.

 

testing with sam

Développer des applications sur AWS

Tests unitaires

 

unit tests

  • Utilisez SAM avec des tests unitaires pour valider le comportement Lambda.
  • Les tests locaux accélèrent les cycles de développement.
  • À jumeler avec des cadres comme pytest, JUnit ou Jest.
Développer des applications sur AWS

Flux de test

 

test workflow

  • Générez des événements de test avec sam local generate-event.
  • Produit des fichiers d'événements JSON.
  • Invoquez localement avec sam local invoke FunctionName -e event.json.
  • Ajoutez des assertions du cadre pour vérifier la réponse avant le déploiement.
Développer des applications sur AWS

Simuler les services AWS

 

mocking tests

  • Combinez les tests locaux avec des bibliothèques de simulation comme moto.
  • Interagissez avec des services AWS simulés, sans appels réels.
  • Améliore la rapidité des tests.
  • Réduit les coûts de test.
  • Valide des scénarios d'erreur comme l'étranglement ou les pannes.
Développer des applications sur AWS

Intégration et déploiement continus (CI/CD)

  • Les applis SAM se déploient souvent via des pipelines CI/CD.
  • Automatisez la construction, les tests, l'empaquetage et le déploiement.
  • AWS CodeCommit stocke le code et les gabarits SAM.
  • AWS CodeBuild exécute les tests et sam build.
  • AWS CodePipeline orchestre le flux.

 

cicd

Développer des applications sur AWS

Flux CI/CD

  • Validez le code source et le gabarit SAM dans un dépôt.
  • Exécutez des tests et validations automatisés.
  • Empaquetez l'appli avec sam build.
  • Déployez les ressources avec sam deploy.
  • Surveillez après déploiement avec CloudWatch.

 

workflow

Développer des applications sur AWS

Dépanner les déploiements

  troubleshooting

  • Le dépannage est une compétence opérationnelle clé.
  • Pannes de déploiement courantes :
  • Problèmes d'autorisations IAM.
  • Gabarits SAM ou CloudFormation non valides.
  • Échec d'empaquetage Lambda ou dépendances manquantes.
  • Mauvaises configurations API Gateway.
Développer des applications sur AWS

Dépanner les déploiements

  troubleshooting

  • Les déploiements SAM reposent sur CloudFormation en coulisse.
  • Fournit des événements de pile et un retour arrière automatique.
  • Aide à cerner les échecs de déploiement.
  • Revient en arrière pour restaurer l'état antérieur de l'environnement.
Développer des applications sur AWS

Dépanner les déploiements

  troubleshooting

  • Dépannez avec :
  • Journaux CloudWatch.
  • Journaux d'exécution API Gateway.
  • Journaux Lambda.
  • Mesures CloudWatch.
Développer des applications sur AWS

Passons à la pratique !

Développer des applications sur AWS

Preparing Video For Download...