Creazione e gestione della funzione Lambda URLs - AWS Lambda

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Creazione e gestione della funzione Lambda URLs

Una funzione URL è un endpoint HTTP (S) dedicato per la funzione Lambda. Puoi creare e configurare una funzione URL tramite la console Lambda o Lambda. API Quando crei una funzioneURL, Lambda genera automaticamente un URL endpoint unico per te. Una volta creata una funzioneURL, il suo URL endpoint non cambia mai. URLGli endpoint della funzione hanno il seguente formato:

https://<url-id>.lambda-url.<region>.on.aws
Nota

URLsLe funzioni non sono supportate nei seguenti paesi Regioni AWS: Asia Pacifico (Hyderabad) (ap-south-2), Asia Pacifico (Melbourne) (ap-southeast-4), Asia Pacifico (Malaysia) (ap-southeast-5), Canada occidentale (Calgary) (), Europa (Spagnaca-west-1) (), Europa (Zurigoeu-south-2) () (), Israele (Tel Aviveu-central-2) () e Medio Oriente (il-central-1) (). UAE me-central-1

URLsLe funzioni sono abilitate al dual stack, supportano e. IPv4 IPv6 Dopo aver configurato una funzione URL per la tua funzione, puoi richiamarla tramite il suo endpoint HTTP (S) tramite un browser web, curl, Postman o qualsiasi client. HTTP

Nota

Puoi accedere alla tua funzione solo URL tramite Internet pubblico. Sebbene le funzioni Lambda supportino AWS PrivateLink, le funzioni noURLs.

La funzione Lambda URLs utilizza politiche basate sulle risorse per la sicurezza e il controllo degli accessi. La funzione supporta URLs anche le opzioni di configurazione di condivisione delle risorse () tra origini diverse. CORS

È possibile applicare la funzione URLs a qualsiasi alias di funzione o alla versione della funzione $LATEST non pubblicata. Non è possibile aggiungere una funzione URL a nessun'altra versione della funzione.

La sezione seguente mostra come creare e gestire una funzione URL utilizzando la console Lambda e il AWS CLI modello AWS CloudFormation

Creazione di una funzione URL (console)

Segui questi passaggi per creare una funzione URL utilizzando la console.

  1. Aprire la pagina Funzioni della console Lambda.

  2. Scegliete il nome della funzione per cui desiderate creare la funzioneURL.

  3. Scegliete la scheda Configurazione, quindi scegliete Funzione URL.

  4. Scegli Create functionURL (Crea funzione).

  5. Per il tipo di autenticazione, scegliete AWS_ IAM o NONE. Per ulteriori informazioni sull'URLautenticazione delle funzioni, vedereControllo accessi.

  6. (Facoltativo) Seleziona Configura la condivisione delle risorse tra le origini (CORS), quindi configura le CORS impostazioni per la tua funzioneURL. Per ulteriori informazioni suCORS, vedereCondivisione di risorse tra origini diverse () CORS.

  7. Seleziona Salva.

Questo crea una funzione URL per la versione $LATEST non pubblicata della funzione. La funzione URL viene visualizzata nella sezione Panoramica delle funzioni della console.

  1. Aprire la pagina Funzioni della console Lambda.

  2. Scegliete il nome della funzione con l'alias per cui desiderate creare la funzioneURL.

  3. Scegliete la scheda Alias, quindi scegliete il nome dell'alias per cui desiderate creare la funzione. URL

  4. Scegliete la scheda Configurazione, quindi scegliete Funzione. URL

  5. Scegli Create functionURL (Crea funzione).

  6. Per il tipo di autenticazione, scegliete AWS_ IAM o NONE. Per ulteriori informazioni sull'URLautenticazione delle funzioni, vedereControllo accessi.

  7. (Facoltativo) Seleziona Configura la condivisione delle risorse tra le origini (CORS), quindi configura le CORS impostazioni per la tua funzioneURL. Per ulteriori informazioni suCORS, vedereCondivisione di risorse tra origini diverse () CORS.

  8. Seleziona Salva.

Questo crea una funzione URL per l'alias della funzione. La funzione URL viene visualizzata nella sezione Panoramica delle funzioni della console relativa all'alias.

Per creare una nuova funzione con una funzione URL (console)
  1. Aprire la pagina Funzioni della console Lambda.

  2. Scegli Crea funzione.

  3. In Basic information (Informazioni di base) eseguire queste operazioni:

    1. In Function name (Nome funzione), inserisci un nome per la funzione, ad esempio my-function.

    2. Per Runtime, scegli il runtime del linguaggio desiderato, ad esempio Node.js 18.x.

    3. Per Architecture (Architettura), scegli x86_64 o arm64.

    4. Espandi Permissions (Autorizzazioni), quindi scegli se creare un nuovo ruolo di esecuzione o usarne uno esistente.

  4. Espandi Impostazioni avanzate, quindi seleziona Funzione URL.

  5. Per il tipo di autenticazione, scegli AWS_ IAM o NONE. Per ulteriori informazioni sull'URLautenticazione delle funzioni, vedereControllo accessi.

  6. (Facoltativo) Seleziona Configura la condivisione delle risorse tra le origini (CORS). Selezionando questa opzione durante la creazione della funzione, per impostazione predefinita la funzione URL consente le richieste da tutte le origini. È possibile modificare le CORS impostazioni della funzione URL dopo averla creata. Per ulteriori informazioni suCORS, vedereCondivisione di risorse tra origini diverse () CORS.

  7. Scegli Crea funzione.

Questo crea una nuova funzione con una funzione URL per la versione $LATEST non pubblicata della funzione. La funzione URL viene visualizzata nella sezione Panoramica delle funzioni della console.

Creazione di una funzione URL (AWS CLI)

Per creare una funzione URL per una funzione Lambda esistente utilizzando AWS Command Line Interface (AWS CLI), esegui il comando seguente:

aws lambda create-function-url-config \ --function-name my-function \ --qualifier prod \ // optional --auth-type AWS_IAM --cors-config {AllowOrigins="https://example.com"} // optional

Ciò aggiunge una funzione URL al prod qualificatore della funzione. my-function Per ulteriori informazioni su questi parametri di configurazione, vedere CreateFunctionUrlConfignel API riferimento.

Nota

Per creare una funzione URL tramite AWS CLI, la funzione deve già esistere.

Aggiungere una funzione URL a un CloudFormation modello

Per aggiungere una AWS::Lambda::Url risorsa al AWS CloudFormation modello, utilizzate la seguente sintassi:

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 la funzioneURL. I valori possibili sono AWS_IAM o NONE. Per limitare l'accesso solo agli utenti autenticati, imposta su AWS_IAM. Per aggirare IAM l'autenticazione e consentire a qualsiasi utente di effettuare richieste alla funzione, imposta su. NONE

  • (Facoltativo)Cors: definisce le CORSimpostazioni per la funzioneURL. Per aggiungere Cors alla AWS::Lambda::Url risorsa in CloudFormation, utilizzate la seguente sintassi.

    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 Amazon Resource Name (ARN) della funzione Lambda. I formati dei nomi validi includono quanto segue:

    • Nome funzionemy-function

    • Funzione ARN: arn:aws:lambda:us-west-2:123456789012:function:my-function

    • Parziale ARN123456789012:function:my-function

Condivisione di risorse tra origini diverse () CORS

Per definire in che modo origini diverse possono accedere alla tua funzioneURL, usa la condivisione di risorse tra origini diverse () CORS. Ti consigliamo di eseguire la configurazione CORS se intendi chiamare la tua funzione URL da un dominio diverso. Lambda supporta le seguenti CORS intestazioni per la funzione. URLs

CORSintestazione CORSproprietà di configurazione Valori di esempio

Access-Control-Allow-Origin

AllowOrigins

* (consente tutte le origini)

https://www.example.com

http://localhost:60905

Access-Control-Allow-Methods

AllowMethods

GET, POST, DELETE, *

Access-Control-Allow-Headers

AllowHeaders

Date, Keep-Alive, X-Custom-Header

Access-Control-Expose-Headers

ExposeHeaders

Date, Keep-Alive, X-Custom-Header

Access-Control-Allow-Credentials

AllowCredentials

TRUE

Access-Control-Max-Age

MaxAge

5 (default), 300

Quando si configura CORS una funzione URL utilizzando la console Lambda o il, AWS CLI Lambda aggiunge automaticamente le CORS intestazioni a tutte le risposte tramite la funzione. URL In alternativa, puoi aggiungere manualmente le CORS intestazioni alla risposta della funzione. Se ci sono intestazioni in conflitto, il comportamento previsto dipende dal tipo di richiesta:

  • Per le richieste di preflight, come OPTIONS le richieste, le CORS intestazioni configurate sulla funzione hanno la precedenza. URL Lambda restituisce solo queste CORS intestazioni nella risposta.

  • Per le richieste non preflight come le POST richieste GET or, Lambda restituisce sia le CORS intestazioni configurate sulla funzioneURL, sia le CORS intestazioni restituite dalla funzione. Ciò può comportare la duplicazione delle intestazioni nella rispostaCORS. Potresti visualizzare 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 CORS impostazioni sulla funzioneURL, piuttosto che inviare manualmente le CORS intestazioni nella risposta della funzione.

Funzione di limitazione URLs

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.

Puoi limitare la frequenza delle richieste che la tua funzione Lambda elabora tramite una funzione configurando la concorrenza riservataURL. La simultaneità riservata limita il numero massimo di richiami simultanei della funzione. La frequenza massima di richieste al secondo della funzione (RPS) è equivalente a 10 volte la concorrenza riservata configurata. Ad esempio, se configuri la funzione con una concorrenza riservata di 100, il massimo RPS è 1.000.

Ogni volta che la concorrenza della funzione supera la concorrenza riservata, la funzione URL restituisce un codice di stato. HTTP 429 Se la funzione riceve una richiesta che supera il RPS massimo di 10 volte in base alla concorrenza riservata configurata, viene visualizzato anche un errore. HTTP 429 Per ulteriori informazioni sulla simultaneità riservata, consulta Configurazione della concorrenza riservata per una funzione.

Funzione di disattivazione URLs

In caso di emergenza, potresti voler rifiutare tutto il traffico verso la tua sede. URL Per disattivare la funzioneURL, imposta la concorrenza riservata su zero. Ciò limita tutte le richieste alla funzioneURL, con conseguenti risposte di stato. HTTP 429 Per riattivare la funzioneURL, elimina la configurazione di concorrenza riservata o imposta la configurazione su un importo maggiore di zero.

Funzione di eliminazione URLs

Quando si elimina una funzioneURL, non è possibile ripristinarla. La creazione di una nuova funzione URL comporterà un URL indirizzo diverso.

Nota

Se elimini una funzione URL con tipo di autenticazioneNONE, Lambda non elimina automaticamente la policy associata basata sulle risorse. Se desideri eliminare questa policy, dovrai farlo manualmente.

  1. Aprire la pagina Funzioni della console Lambda.

  2. Scegliere il nome della funzione.

  3. Scegli la scheda Configurazione, quindi scegli Funzione. URL

  4. Scegli Elimina.

  5. Inserisci la parola delete (elimina) nel campo per confermare l'eliminazione.

  6. Scegli Elimina.

Nota

Quando elimini una funzione che ha una funzioneURL, Lambda elimina la funzione in modo asincrono. URL Se crei immediatamente una nuova funzione con lo stesso nome nello stesso account, è possibile che la funzione originale URL venga mappata alla nuova funzione anziché eliminata.