APIs testen und bereitstellen

Anwendungen auf AWS entwickeln

Ricardo Sueiras

Principal Technologist

Infrastructure-as-Code für Entwickler:innen

 

iac

  • Cloud-native Apps werden mit Infrastructure-as-Code (IaC) bereitgestellt.
  • Definiere Cloud-Ressourcen in Konfigurationsdateien.
  • Vermeidet manuelles Einrichten in der AWS Management Console (Clickops).
Anwendungen auf AWS entwickeln

AWS CloudFormation

 

cloudformation

  • Der grundlegende IaC-Dienst in AWS.
  • Definiere AWS-Ressourcen mit YAML- oder JSON-Templates.
Anwendungen auf AWS entwickeln

AWS Cloud Development Kit (CDK)

 

cdk

  • CDK beschreibt IaC mit Code.
  • Schreibe in Python, TypeScript oder Java statt YAML oder JSON.
  • Apps werden zur Bereitstellung in CloudFormation-Templates synthetisiert.
Anwendungen auf AWS entwickeln

AWS Serverless Application Model (SAM)

  • Erweitert CloudFormation.
  • Vereinfachte Syntax für serverlose Ressourcen und APIs.
  • Wirkt als Transformationsschicht.
  • Übersetzt SAM-Syntax in vollständige CloudFormation-Templates.

 

sam

Anwendungen auf AWS entwickeln

SAM-Funktionen

  • Generiert automatisch Least-Privilege-IAM-Rollen, feinjustierbar.
  • Definiere deine Deployment-Pipeline als Konfiguration.
  • Paketieren und deployen mit sam build und sam deploy.
  • Template-Fehler früh erkennen mit sam validate.
  • Lambda lokal emulieren mit sam local start-lambda.
    • Bietet einen persistenten lokalen Endpunkt

 

sam features

Anwendungen auf AWS entwickeln

Testen mit SAM

  • Serverlose Apps lokal bauen, aufrufen und testen – vor dem Deploy.
  • Lambda-Funktionen und API-Gateway-Integrationen testen.
  • Eine Funktion lokal aufrufen mit sam local invoke.
    • Einmaliger Aufruf
  • API Gateway emulieren mit sam local start-api.

 

testing with sam

Anwendungen auf AWS entwickeln

Unit-Tests

 

unit tests

  • Nutze SAM mit Unit-Tests, um Lambda-Verhalten zu prüfen.
  • Lokales Testen beschleunigt Entwicklungszyklen.
  • Kombiniere mit Frameworks wie pytest, JUnit oder Jest.
Anwendungen auf AWS entwickeln

Test-Workflow

 

test workflow

  • Test-Events mit sam local generate-event erzeugen.
  • Gibt JSON-Event-Dateien aus.
  • Lokal aufrufen mit sam local invoke FunctionName -e event.json.
  • Framework-Asserts hinzufügen, um die Antwort vor dem Deploy zu prüfen.
Anwendungen auf AWS entwickeln

AWS-Services mocken

 

mocking tests

  • Kombiniere lokales Testen mit Mocking-Bibliotheken wie moto.
  • Interagiere mit simulierten AWS-Services, keine echten Aufrufe.
  • Verbessert die Testgeschwindigkeit.
  • Senkt Testkosten.
  • Validiert Fehlerszenarien wie Throttling oder Ausfälle.
Anwendungen auf AWS entwickeln

Continuous Integration und Continuous Deployment (CI/CD)

  • SAM-Apps werden oft über CI/CD-Pipelines bereitgestellt.
  • Bauen, Testen, Paketieren und Deployen automatisieren.
  • AWS CodeCommit speichert Code und SAM-Templates.
  • AWS CodeBuild führt Tests und sam build aus.
  • AWS CodePipeline orchestriert den Workflow.

 

cicd

Anwendungen auf AWS entwickeln

CI/CD-Workflow

  • Source-Code und SAM-Template in ein Repo committen.
  • Automatisierte Tests und Validierung ausführen.
  • App mit sam build paketieren.
  • Ressourcen mit sam deploy bereitstellen.
  • Nach dem Deploy mit CloudWatch überwachen.

 

workflow

Anwendungen auf AWS entwickeln

Deployments troubleshootern

  troubleshooting

  • Troubleshooting ist eine zentrale Betriebsfähigkeit.
  • Häufige Bereitstellungsfehler:
  • IAM-Berechtigungsprobleme.
  • Ungültige SAM- oder CloudFormation-Templates.
  • Fehlgeschlagenes Lambda-Packaging oder fehlende Abhängigkeiten.
  • Falsche API-Gateway-Konfigurationen.
Anwendungen auf AWS entwickeln

Deployments troubleshootern

  troubleshooting

  • SAM-Deployments laufen unter der Haube auf CloudFormation.
  • Bietet Stack-Events und automatisches Rollback.
  • Hilft, Bereitstellungsfehler zu erkennen.
  • Stellt den vorherigen Umgebungszustand per Rollback wieder her.
Anwendungen auf AWS entwickeln

Deployments troubleshootern

  troubleshooting

  • Probleme beheben mit:
  • CloudWatch-Logs.
  • API-Gateway-Ausführungslogs.
  • Lambda-Logs.
  • CloudWatch-Metriken.
Anwendungen auf AWS entwickeln

Lass uns üben!

Anwendungen auf AWS entwickeln

Preparing Video For Download...