AWS Lambda Function URLs

Ti piacerebbe l’idea di creare una AWS Lambda ed averla pronta all’uso senza dovere perdere tempo gestendo la parte relativa l’API Gateway & Authorization API Key?

Sappiate che quello che vi mostrerò oggi non è la novità del momento. Si tratta di un servizio introdotto da AWS circa nel 2022 se non vado errato.

💡 Ti stai chiedendo di cosa si tratta nello specifico e come mai dovresti provarle almeno una volta? Continua a leggere per avere maggiori informazioni, ma ti posso dire rapidamente perché sono semplici da creare e veloci da utilizzare.

AWS Lambda Function URLs

Prima di mostrarti la pratica su come utilizzarle, desidero darti una (breve) spiegazione teorica di cosa sono raccontandoti la mia esperienza.

Uno dei motivi per i quali ho sempre preferito le Azure Functions alle AWS Lambda è legato al concetto di utilizzo rapido senza dovere ricorrere alla creazione di un API Gateway per poterle richiamare.

Ora prova a pensare se fosse possibile saltare questo passaggio. Crei la AWS Lambda e la puoi chiamare all’istante. Non mi credi?

Nell’esatto istante in cui crei una AWS Lambda URLs, ti verrà generato in automatico un endpoint http per invocarla. Questo URL non cambierà nel tempo e quindi potrai sempre contare su di esso.

Per cultura personale, ti segnalo che la composizione del tuo endpoint avrà la seguente sintassi

1
https:// [random-url-id] .lambda-url. [aws-region] .on.aws

A questo punto non dovrai fare altro che riempire la AWS Lambda col tuo codice ed utilizzarla a piacere. Ovvamente gli spazi non saranno presenti nel link prodotto.

Creazione AWS Lambda

⏲️ Quanto pensi di impiegare? Prova a leggere e poi attiva il cronometro quando sperimenti.

Dopo averti mostrato un attimo di teoria, ora voglio guidarti passo dopo passo su come ottenere la tua prima AWS Lambda URLs in pochissimi passaggi.

  • Login al portale [AWS] (https://aws.amazon.com/)
  • Seleziona il servizio AWS Lambda dalla tua home page o tramite la ricerca testuale
  • Una volta nella sezione dedicata potrai cominciare premendo Create Function

AWS Lambda URLs - Create Function

Advanced settings

A questo non dovrai fare altro che completare le Basic information coi dati necessari per il setup e prima di fare nuovamente click su Create Function ti consiglio di aprire la sezione Advanced settings

AWS Lambda URLs - Create Function Advanced Settings

Probabilmente l’istinto ti dirà di selezionare la voce Enable Function URL e poi di selezionare Create Function ed in parte ha ragione.

Enable Function URL

Una volta selezionato Enable Function URL ti verrà mostrata una nuova sezione da completare dove dovrai inserire due valori importanti:

Auth Type:

  • AWS_IAM: Only authenticated IAM users and roles can make requests to your function URL.
  • NONE: Lambda won’t perform IAM authentication on requests to your function URL. The URL endpoint will be public unless you implement your own authorization logic in your function.

In questo esempio useremo NONE per semplificare la demo. Per maggiori informazioni ecco il link ufficiale Security and auth model for Lambda function URLs

UPDATE: Articolo sul blog AWS Lambda Function URLs: AWS IAM Auth Type per la creazione tramite AWS_IAM

CORS:

Use CORS to allow access to your function URL from any origin. You can also use CORS to control access for specific HTTP headers and methods in requests to your function URL. By default, all origins are allowed. You can edit this after creating the function. Learn more

AWS Lambda URLs - Create Function Advanced Settings

Se ti interessa proteggere il tuo endpoint attivando il CORS, questo è un buon momento per farlo.

EndPoint e Test

A questo punto puoi davvero procedere con la creazione della tua AWS Lambda URL e ti troverai davanti ad una schermata simile alla seguente:

AWS Lambda URLs - EndPoint

Come avrai notato l’URL è subito disponibile e non dovrai fare altro che selezionarlo per vederne a video il risultato. Non copiare l’url per provarlo, ho cancellato la Lambda a fine stesura dell’articolo.

AWS Lambda URLs - EndPoint Result

Ed ora? Sei pronto a riempire la AWS Lambda col tuo codice sorgente?