Sviluppo API

Sviluppare applicazioni su AWS

Ricardo Sueiras

Principal Technologist

Integrazioni API Gateway

 

Integrazioni API Gateway

  • Più opzioni di integrazione back-end
  • HTTP: qualsiasi endpoint pubblico instradabile
  • API di servizi AWS come DynamoDB o SNS
  • Funzioni Lambda
  • Risorse private tramite collegamenti VPC
  • Risposte mock senza un vero back-end
Sviluppare applicazioni su AWS

Tipi di integrazione: proxy

 

Tipi di integrazione API

  • Il tipo di integrazione definisce quanto controllo ha API Gateway
  • Tipi proxy: AWS_PROXY e HTTP_PROXY
  • L'intera richiesta HTTP va direttamente al back-end
  • API Gateway fa solo pass-through trasparente
  • Il back-end costruisce la risposta
Sviluppare applicazioni su AWS

Tipi di integrazione: non proxy

  • Tipi non proxy: AWS e HTTP
  • Configuri tu le trasformazioni di richiesta e risposta
  • Guidate da mapping template
  • Template scritti in Velocity Template Language (VTL)

 

Tipi di integrazione API

Sviluppare applicazioni su AWS

Convalida delle richieste

 

convalida delle richieste

  • Convalida le richieste prima del back-end
  • Intercetta campi obbligatori mancanti
  • Intercetta JSON non valido
  • Intercetta tipi di parametro errati
  • In caso di errore: 400 Bad Request
Sviluppare applicazioni su AWS

Convalida delle richieste

 

convalida delle richieste

  • La convalida può riguardare:
    • Header
    • Parametri di query string
    • Corpo della richiesta
    • Schema JSON
Sviluppare applicazioni su AWS

Convalida delle richieste

 

convalida delle richieste

  • La convalida porta vantaggi:
    • Riduce richieste back-end non valide
    • Abbassa i costi di esecuzione Lambda
    • Migliora l'affidabilità dell'API
Sviluppare applicazioni su AWS

Trasformazioni

  • Rimodella richieste e risposte senza toccare il back-end
    • Cambia la struttura del payload
    • Rinomina campi
    • Trasforma header
    • Converte formati dati
    • Nasconde dettagli d'implementazione
  • Basato su mapping template VTL

 

Trasformazioni API

Sviluppare applicazioni su AWS

Gestione degli errori

 

Errori API

  • Due categorie di errori
    • Errori del Gateway: generati da API Gateway
    • Errori di integrazione: guasti del back-end
  • Errori comuni del Gateway:
    • 400 Bad Request: convalida richiesta fallita
    • 429 Too Many Requests: superato il limite di throttling
Sviluppare applicazioni su AWS

Gestione degli errori

 

Errori API

  • Errori comuni di integrazione:
    • 502 Bad Gateway: risposta malformata o errata
    • 503 Service Unavailable: back-end non disponibile o sovraccarico
    • 504 Gateway Timeout: superato il timeout di 29 secondi
    • Le REST API Regional e Private possono superare 29 secondi
Sviluppare applicazioni su AWS

Logging

  • Log di esecuzione e metriche CloudWatch sono chiave per il troubleshooting
  • API Gateway si integra con CloudWatch per:
    • Log
    • Metriche
    • Tracing dell'esecuzione

 

 

Osservabilità API

Sviluppare applicazioni su AWS

Logging

  • I log CloudWatch aiutano a risolvere:
    • Integrazioni fallite
    • Errori di trasformazione
    • Errori di autorizzazione
    • Problemi di esecuzione Lambda

 

 

Osservabilità API

Sviluppare applicazioni su AWS

Stage: gestione delle API tra ambienti

 

Stage

  • Un'unica definizione di API serve più ambienti
  • Gli stage sono come API Gateway gestisce questi ambienti
Sviluppare applicazioni su AWS

Stage: gestione delle API tra ambienti

 

Stage

  • Un'unica definizione di API serve più ambienti
  • Gli stage sono come API Gateway gestisce questi ambienti
  • Uno stage è un riferimento con nome
  • Punta a uno snapshot di deployment della configurazione API
Sviluppare applicazioni su AWS

Stage: gestione delle API tra ambienti

 

Stage

  • Un'unica definizione di API serve più ambienti
  • Gli stage sono come API Gateway gestisce questi ambienti
  • Uno stage è un riferimento con nome
  • Punta a uno snapshot di deployment della configurazione API
  • Nomi stage comuni:
    • Dev
    • Test
    • QA e Prod
Sviluppare applicazioni su AWS

Stage: gestione delle API tra ambienti

 

Stage

  • Un'unica definizione di API serve più ambienti
  • Gli stage sono come API Gateway gestisce questi ambienti
  • Uno stage è un riferimento con nome
  • Punta a uno snapshot di deployment della configurazione API
  • Nomi stage comuni: Dev, Test, QA, Prod
  • L'URL di invocazione riflette ogni stage
Sviluppare applicazioni su AWS

Stage: gestione delle API tra ambienti

 

Stage

  • Un'unica definizione di API serve più ambienti
  • Gli stage sono come API Gateway gestisce questi ambienti
  • Uno stage è un riferimento con nome
  • Punta a uno snapshot di deployment della configurazione API
  • Nomi stage comuni: Dev, Test, QA, Prod
  • L'URL di invocazione riflette ogni stage
  • Più stage possono puntare a un deployment per rollback immediato
Sviluppare applicazioni su AWS

Stage: gestione delle API tra ambienti

 

Stage

  • Le modifiche diventano live solo quando distribuite su uno stage
Sviluppare applicazioni su AWS

Funzionalità degli stage

  • Ogni stage è configurato in modo indipendente
  • La configurazione include variabili di stage
  • Le variabili di stage sono coppie chiave-valore
  • Instrada un deployment verso back-end diversi
  • Nessuna nuova distribuzione per cambiare ambiente

 

stage

Sviluppare applicazioni su AWS

Funzionalità degli stage

  • Canary deployment
    • Solo per REST API
    • Invia una percentuale di traffico a un nuovo deployment
    • Promuovi a rilascio completo
    • Elimina il canary per il rollback

 

stage

Sviluppare applicazioni su AWS

Funzionalità degli stage

  • Throttling
    • Impostato a livello di stage
    • Si applica a tutti i metodi, con override per metodo

 

stage

Sviluppare applicazioni su AWS

Funzionalità degli stage

  • Throttling
    • Impostato a livello di stage
    • Si applica a tutti i metodi, con override per metodo
  • Caching
    • Solo per REST API
    • Memorizza le risposte del back-end nello stage
    • I client possono bypassare con Cache-Control
    • TTL da 0 a 3600 secondi, predefinito 300

 

stage

Sviluppare applicazioni su AWS

Funzionalità degli stage

  • Il logging offre due modalità
    • Access log
    • Costruiti da variabili $context, inviati a un log group CloudWatch
    • Execution log
    • Catturano tutti i dettagli di richiesta e risposta

 

stage

Sviluppare applicazioni su AWS

Esercitiamoci!

Sviluppare applicazioni su AWS

Preparing Video For Download...