Creazione e gestione degli URL della funzione Lambda
Un URL della funzione è un endpoint HTTP(S) dedicato alla funzione Lambda. È possibile creare e configurare un URL della funzione tramite la console Lambda o l'API Lambda.
Suggerimento
Lambda offre due modi per richiamare una funzione tramite un endpoint HTTP: URL di funzione e Amazon API Gateway. Se non sei certo di quale metodo si adatti al tuo caso d'uso, consultareSelezionare un metodo per richiamare la funzione Lambda tramite una richiesta HTTP.
Quando si crea un URL della funzione, Lambda genera automaticamente un endpoint URL univoco. Dopo aver creato un URL della funzione, il suo endpoint URL non cambia mai. Gli endpoint URL della funzione hanno il formato seguente:
https://<url-id>.lambda-url.<region>.on.aws
Nota
Gli URL delle funzioni non sono supportati nei seguenti paesiRegioni AWS: Asia Pacifico (Hyderabad) (ap-south-2), Asia Pacifico (Melbourne) (ap-southeast-4), Asia Pacifico (Malesia) (), Asia Pacifico (Nuova Zelandaap-southeast-5) (), Asia Pacifico (Tailandia) () ()ap-southeast-6, Asia Pacifico (Taipeiap-southeast-7) (), Canada occidentale (Calgary) ()ap-east-2, Europa (Spagna) ()ca-west-1, Europa (Zurigo) () eu-south-2eu-central-2, Israele (Tel Aviv) () e Medio Oriente (Emirati Arabi Uniti) (). il-central-1 me-central-1
Gli URL della funzione sono abilitati alla rete dual stack e supportano IPv4 e IPv6. Dopo aver configurato un URL della funzione per la funzione utilizzata, è possibile richiamare la funzione attraverso il relativo endpoint HTTP(S) tramite un browser Web, curl, Postman o un client HTTP.
Nota
Puoi accedere all'URL della funzione solo tramite Internet pubblico. Sebbene le funzioni Lambda supportino AWS PrivateLink, gli URL delle funzioni no.
Gli URL della funzione Lambda utilizzano policy basate sulle risorse per sicurezza e controllo degli accessi. Gli URL della funzione supportano anche le opzioni di configurazione CORS (cross-origin resource sharing).
È possibile applicare gli URL della funzione a qualsiasi alias di funzione o alla versione della funzione non pubblicata di $LATEST. Non è possibile aggiungere un URL della funzione a nessun'altra versione della funzione.
La sezione seguente mostra come creare e gestire una funzione URL utilizzando la console Lambda, AWS CLI e il modello CloudFormation
Argomenti
Creazione di un URL della funzione (console)
Segui queste fasi per creare un URL della funzione usando la console.
-
Aprire la pagina Funzioni
della console Lambda. -
Scegli il nome della funzione per la quale desideri creare l'URL della funzione.
-
Scegli la scheda Configurazione, quindi scegli URL della funzione.
-
Scegli Crea URL della funzione.
-
Per Tipo di autenticazione, scegli AWS_IAM o NONE. Per ulteriori informazioni sull'autenticazione dell'URL della funzione, consulta Controllo accessi.
-
(Opzionale) Seleziona Configura CORS e quindi configura le impostazioni CORS per l'URL della funzione. Per ulteriori informazioni sulla funzionalità CORS, consulta Cross-Origin Resource Sharing (CORS).
-
Selezionare Salva.
In questo modo viene creato un URL di funzione per la versione non pubblicata di $LATEST della funzione. L'URL della funzione viene visualizzato nella sezione Panoramica della funzione della console.
-
Aprire la pagina Funzioni
della console Lambda. -
Scegli il nome della funzione con l'alias per cui desideri creare l'URL della funzione.
-
Seleziona la scheda Aliases (Alias) e quindi scegli il nome dell'alias per cui desideri creare l'URL della funzione.
-
Scegli la scheda Configuration (Configurazione), quindi scegli Function URL (URL della funzione).
-
Scegli Crea URL della funzione.
-
Per Tipo di autenticazione, scegli AWS_IAM o NONE. Per ulteriori informazioni sull'autenticazione dell'URL della funzione, consulta Controllo accessi.
-
(Opzionale) Seleziona Configura CORS e quindi configura le impostazioni CORS per l'URL della funzione. Per ulteriori informazioni sulla funzionalità CORS, consulta Cross-Origin Resource Sharing (CORS).
-
Selezionare Salva.
In questo modo viene creato un URL della funzione per l'alias della funzione. L'URL della funzione viene visualizzato nella sezione Panoramica della funzione della console per l'alias.
Creazione di una nuova funzione con un URL della funzione (console)
-
Aprire la pagina Funzioni
della console Lambda. -
Scegli Crea funzione.
-
In Basic information (Informazioni di base) eseguire queste operazioni:
-
In Function name (Nome funzione), inserisci un nome per la funzione, ad esempio
my-function. -
Per Runtime, scegli il runtime del linguaggio desiderato, ad esempio Node.js 18.x.
-
Per Architecture (Architettura), scegli x86_64 o arm64.
-
Espandi Permissions (Autorizzazioni), quindi scegli se creare un nuovo ruolo di esecuzione o usarne uno esistente.
-
-
Espandi Advanced settings (Impostazioni avanzate) e quindi seleziona Function URL (URL della funzione).
-
Per Auth type (Tipo di autenticazione), scegli AWS_IAM o NONE. Per ulteriori informazioni sull'autenticazione dell'URL della funzione, consulta Controllo accessi.
-
(Opzionale) Seleziona Configure cross-origin resource sharing (CORS) (Configura CORS). Selezionando questa opzione durante la creazione della funzione, l'URL della funzione consente le richieste da tutte le origini per impostazione predefinita. È possibile modificare le impostazioni CORS per l'URL della funzione dopo aver creato la funzione. Per ulteriori informazioni sulla funzionalità CORS, consulta Cross-Origin Resource Sharing (CORS).
-
Scegli Crea funzione.
In questo modo viene creata una nuova funzione con un URL della funzione per la versione non pubblicata di $LATEST della funzione. L'URL della funzione viene visualizzato nella sezione Function overview (Panoramica della funzione) della console.
Creazione di un URL di funzione (AWS CLI)
Per creare un URL di funzione per una funzione Lambda esistente utilizzando la AWS Command Line Interface (AWS CLI), esegui il seguente comando:
aws lambda create-function-url-config \ --function-namemy-function\ --qualifierprod\ // optional --auth-typeAWS_IAM--cors-config{AllowOrigins="https://example.com"}// optional
Un URL di funzione viene aggiunto al qualificatore prod per la funzione my-function. Per ulteriori informazioni su questi parametri di configurazione, consulta CreateFunctionUrlConfig nel documento di riferimento delle API.
Nota
Per creare un URL di funzione tramite la AWS CLI, la funzione deve già esistere.
Aggiunta di un URL di funzione a un modello CloudFormation
Per aggiungere una risorsa AWS::Lambda::Url al modello CloudFormation, utilizza la sintassi seguente:
JSON
{ "Type" : "AWS::Lambda::Url", "Properties" : { "AuthType" : String, "Cors" : Cors, "Qualifier" : String, "TargetFunctionArn" : String } }
YAML
Type: AWS::Lambda::Url Properties: AuthType: String Cors: Cors Qualifier: String TargetFunctionArn: String
Parametri
(Obbligatorio)
AuthType: definisce il tipo di autenticazione per l'URL della funzione. I valori possibili sonoAWS_IAMoNONE. Per limitare l'accesso solo agli utenti autenticati, imposta suAWS_IAM. Per ignorare l'autenticazione IAM e consentire a qualsiasi utente di effettuare richieste alla propria funzione, imposta suNONE.-
(Opzionale)
Cors: definisce le impostazioni CORS per l'URL della funzione. Per aggiungereCorsalla risorsaAWS::Lambda::Urlin CloudFormation, utilizza la sintassi seguente.Esempio AWS::Lambda::Url.Cors (JSON)
{ "AllowCredentials" : Boolean, "AllowHeaders" : [ String, ... ], "AllowMethods" : [ String, ... ], "AllowOrigins" : [ String, ... ], "ExposeHeaders" : [ String, ... ], "MaxAge" : Integer }Esempio AWS::Lambda::Url.Cors (YAML)
AllowCredentials: Boolean AllowHeaders: - String AllowMethods: - String AllowOrigins: - String ExposeHeaders: - String MaxAge: Integer (Opzionale)
Qualifier: il nome dell'alias.(Obbligatorio)
TargetFunctionArn: il nome o l'Amazon Resource Name (ARN) della funzione Lambda. I formati dei nomi validi includono quanto segue:Nome funzione –
my-functionARN funzione –
arn:aws:lambda:us-west-2:123456789012:function:my-functionARN parziale –
123456789012:function:my-function
Cross-Origin Resource Sharing (CORS)
Per definire in che modo le diverse origini possono accedere all'URL della funzione, utilizza cross-origin resource sharing (CORS)
| Intestazioni CORS | Proprietà di configurazione CORS | Valori di esempio |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Quando si configura CORS per un URL della funzione utilizzando la console Lambda o la AWS CLI, Lambda aggiunge automaticamente le intestazioni CORS a tutte le risposte tramite l'URL della funzione. In alternativa, è possibile aggiungere manualmente le intestazioni CORS alla risposta della funzione. Se ci sono intestazioni in conflitto, il comportamento previsto dipende dal tipo di richiesta:
-
Per le richieste di preflight come le richieste OPTIONS, le intestazioni CORS configurate nella funzione URL hanno la precedenza. Lambda restituisce solo queste intestazioni CORS nella risposta.
-
Per le richieste non preflight come le richieste GET o POST, Lambda restituisce sia le intestazioni CORS configurate nella funzione URL, sia le intestazioni CORS restituite dalla funzione. Ciò può comportare intestazioni CORS duplicate nella risposta. È possibile che venga visualizzato un errore simile al seguente:
The 'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed.
In generale, consigliamo di configurare tutte le impostazioni CORS nella funzione URL anziché inviare manualmente le intestazioni CORS nella risposta della funzione.
Throttling di URL di funzioni
Il throttling limita la frequenza con cui la funzione elabora le richieste. Ciò è utile in molte situazioni, ad esempio per impedire alla funzione di sovraccaricare le risorse a valle o per gestire un improvviso aumento delle richieste.
È possibile limitare la frequenza delle richieste elaborate dalla funzione Lambda tramite un URL di funzione configurando la simultaneità riservata. La simultaneità riservata limita il numero massimo di richiami simultanei della funzione. La frequenza massima di richieste al secondo (RPS) della funzione equivale a 10 volte la simultaneità riservata configurata. Ad esempio, se si configura la funzione con una simultaneità riservata di 100, l'RPS massimo è 1.000.
Ogni volta che la simultaneità della funzione supera la simultaneità riservata, l'URL della funzione restituisce un codice di stato HTTP 429. Se la funzione riceve una richiesta che supera 10 volte l'RPS massimo in base alla simultaneità riservata configurata, viene ricevuto anche un errore HTTP 429. Per ulteriori informazioni sulla simultaneità riservata, consulta Configurazione della simultaneità riservata per una funzione.
Disattivazione degli URL della funzione
In caso di emergenza, potresti voler rifiutare tutto il traffico verso l'URL della funzione. Per disattivare l'URL della funzione, imposta la simultaneità riservata su zero. In questo modo vengono limitate tutte le richieste all'URL della funzione, con conseguenti risposte di stato HTTP 429. Per riattivare l'URL della funzione, elimina la configurazione di simultaneità riservata o imposta la configurazione su una quantità maggiore di zero.
Eliminazione degli URL della funzione
Quando si elimina un URL di funzione, non è possibile ripristinarlo. La creazione di un nuovo URL di funzione determinerà un indirizzo URL diverso.
Nota
Se elimini l'URL della funzione con il tipo di autenticazione NONE, Lambda non elimina automaticamente la policy basata sulle risorse associata. Se desideri eliminare questa policy, dovrai farlo manualmente.
-
Aprire la pagina Funzioni
della console Lambda. -
Scegliere il nome della funzione.
-
Scegli la scheda Configurazione, quindi scegli URL della funzione.
-
Scegli Elimina.
-
Inserisci la parola delete (elimina) nel campo per confermare l'eliminazione.
-
Scegli Elimina.
Nota
Quando si elimina una funzione con una funzione URL, Lambda elimina in modo asincrono la funzione URL. Se crei immediatamente una nuova funzione con lo stesso nome nello stesso account, è possibile che la funzione URL originale venga mappata alla nuova funzione anziché eliminata.