AWS, Lambda, API Gateway & Authorization API Key

In questo ultimo periodo ho deciso di mettere a confronto lo sviluppo tramite Azure Functions con le alternative proposte da altri Cloud. In questo articolo mostrero’ come ho affrontato un punto -a mio avviso fondamentale- sulle AWS Lambda.

Arrivando dal mondo Azure il concetto di protezione di una Function e’ veramente semplice. Nel momento in cui scrivi un HTTP Trigger viene fatto in automatico tramite AuthorizationLevel, ma qua non e’ propriamente cosi.

Sperando di non avere dimenticato dei passaggi, ho sintetizzato la procedura in CINQUE passaggi chiave piu’ uno a seguire per i test.

Siete pronti a cominciare?

AWS Lambda

Lambda - Creazione

In questo primo passaggio dal portale AWS Cloud dobbiamo creare una nuova AWS Lambda di test.

AWS Lambda - Creazione

Per questo passaggio -come mostrato nella figura precedente- ho utilizzato il template di default “Crea da Zero - Inizia con un semplice esempio di Hello World.” senza avere fatto nessuna modifica.

Il nome che ho assegnato alla Lambda -con enorme fantasia- e’ stato: awsHelloWorld

Trigger

Una volta creata la Lambda non ci resta che selezionare Aggiungi Trigger per creare il nostro Gateway API.

AWS Lambda - Trigger

Come vedete a sinistra della Lambda awsHelloWorld e’ presente la voce + Aggiungi Trigger e selezionandola dobbiamo selezionare **Gateway API **.

Gateway API

Gateway - Creazione

Il passaggio successivo e’ la creazione del nostro Gateway API per potere chiamare la nostra Lambda dall’esterno tramite HTTP Trigger.

AWS Lambda - Gateway API

Rispetto alla soluzione proposta di default ho effettuato due modifiche:

  • Tipo di API: API Rest
  • Sicurezza: Chiave di API

ed una volta effettuato le modifiche vi bastera’ fare click su Aggiungi.

Gateway API Key

Una volta aggiunto il nostro Gateway API non dobbiamo fare altro che selezionare sulla colonna di sinistra la voce Chiavi API.

AWS Lambda - Gateway API Key

Nella parte di destra a questo punto dovrete selezionare la key specifica della vostra Lambda (nel mio caso awsHelloWorld-key) e fare click su mostra per potere vedere la chiave nascosta.

Distribuzione

Restando nella stessa sezione non dobbiamo fare altro che selezionare la voce Risorse.

AWS Lambda - Distribuzione

Troverete una drop down chiamata Operazioni e da essa dobbiamo selezionare Distribuisci l’API e selezionare la fase da noi desiderata. Nel mio caso ho selezionato default

A questo punto -se tutto e’ andato per il verso migliore- siete pronti per il test finale!

ENDPoint & x-api-key

Come ultimo passaggio vi consiglio di verificare quanto appena fatto chiamando l’entry point generato e l’API Key ottenuta dai passaggi precedenti. Come? Per farlo utilizzeremo curl da linea di comando.

1
2
3
4
5
curl 
    --location 
    --request GET 'https://stg1tfyss6.execute-api.eu-central-1.amazonaws.com/default/awsHelloWorld' 
    --header 'x-api-key: z[... ... ...]A' 
    --data-raw ''

Nel mio caso -e spero anche nel vostro- dovreste vedere apparire Hello from Lambda! come per magia!