Testa och driftsätta dina API:er

Utveckla applikationer på AWS

Ricardo Sueiras

Principal Technologist

Infrastructure-as-Code för utvecklare

 

iac

  • Molnbaserade appar driftsätts med Infrastructure-as-Code (IaC).
  • Molnresurser definieras i konfigurationsfiler.
  • Undviker manuell konfiguration i AWS Management Console (clickops).
Utveckla applikationer på AWS

AWS CloudFormation

 

cloudformation

  • Den grundläggande IaC-tjänsten i AWS.
  • Definiera AWS-resurser med YAML- eller JSON-mallar.
Utveckla applikationer på AWS

AWS Cloud Development Kit (CDK)

 

cdk

  • CDK definierar IaC med kod.
  • Skriv i Python, TypeScript eller Java i stället för YAML eller JSON.
  • Appar kompileras till CloudFormation-mallar vid driftsättning.
Utveckla applikationer på AWS

AWS Serverless Application Model (SAM)

  • Utökar CloudFormation.
  • Förenklad syntax för serverlösa resurser och API:er.
  • Fungerar som ett transformationslager.
  • Översätter SAM-syntax till fullständiga CloudFormation-mallar.

 

sam

Utveckla applikationer på AWS

SAM-funktioner

  • Genererar automatiskt IAM-roller med minsta möjliga behörighet, med möjlighet att finjustera.
  • Definiera din driftsättningspipeline som konfiguration.
  • Paketera och driftsätt med sam build och sam deploy.
  • Fånga mallfel tidigt med sam validate.
  • Emulera Lambda lokalt med sam local start-lambda.
    • Tillhandahåller en beständig lokal slutpunkt

 

sam features

Utveckla applikationer på AWS

Testning med SAM

  • Bygg, anropa och testa serverlösa appar lokalt före driftsättning.
  • Testa Lambda-funktioner och API Gateway-integrationer.
  • Anropa en funktion lokalt med sam local invoke.
    • Engångsanrop
  • Emulera API Gateway med sam local start-api.

 

testing with sam

Utveckla applikationer på AWS

Enhetstester

 

unit tests

  • Använd SAM med enhetstester för att validera Lambda-beteende.
  • Lokal testning snabbar upp utvecklingscykeln.
  • Kombinera med ramverk som pytest, JUnit eller Jest.
Utveckla applikationer på AWS

Testarbetsflöde

 

test workflow

  • Generera testhändelser med sam local generate-event.
  • Resultatet är JSON-händelsefiler.
  • Anropa lokalt med sam local invoke FunctionName -e event.json.
  • Lägg till ramverksassertioner för att verifiera svaret före driftsättning.
Utveckla applikationer på AWS

Mockning av AWS-tjänster

 

mocking tests

  • Kombinera lokal testning med mockning via bibliotek som moto.
  • Interagera med simulerade AWS-tjänster utan riktiga anrop.
  • Förbättrar testhastigheten.
  • Minskar testkostnaderna.
  • Validerar felscenarier som begränsning eller fel.
Utveckla applikationer på AWS

Kontinuerlig integration och kontinuerlig driftsättning (CI/CD)

  • SAM-appar driftsätts vanligtvis via CI/CD-pipelines.
  • Automatisera bygge, testning, paketering och driftsättning.
  • AWS CodeCommit lagrar kod och SAM-mallar.
  • AWS CodeBuild kör tester och sam build.
  • AWS CodePipeline orkestrerar arbetsflödet.

 

cicd

Utveckla applikationer på AWS

CI/CD-arbetsflöde

  • Checka in källkod och SAM-mall i ett repo.
  • Kör automatiserade tester och validering.
  • Paketera appen med sam build.
  • Driftsätt resurser med sam deploy.
  • Övervaka efter driftsättning med CloudWatch.

 

workflow

Utveckla applikationer på AWS

Felsökning av driftsättningar

  troubleshooting

  • Felsökning är en viktig driftkompetens.
  • Vanliga driftsättningsfel:
  • IAM-behörighetsproblem.
  • Ogiltiga SAM- eller CloudFormation-mallar.
  • Misslyckad Lambda-paketering eller saknade beroenden.
  • Felaktig API Gateway-konfiguration.
Utveckla applikationer på AWS

Felsökning av driftsättningar

  troubleshooting

  • SAM-driftsättningar körs på CloudFormation i bakgrunden.
  • Tillhandahåller stackhändelser och automatisk återställning.
  • Hjälper till att identifiera driftsättningsfel.
  • Återställer till tidigare miljötillstånd vid fel.
Utveckla applikationer på AWS

Felsökning av driftsättningar

  troubleshooting

  • Felsök problem med:
  • CloudWatch Logs.
  • API Gateway-körningsloggar.
  • Lambda-loggar.
  • CloudWatch-mätvärden.
Utveckla applikationer på AWS

Nu kör vi en övning!

Utveckla applikationer på AWS

Preparing Video For Download...