

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 degli URL della funzione Lambda
<a name="urls-configuration"></a>

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. In caso di dubbi su quale sia il metodo migliore per il tuo caso d'uso, consulta [Selezionare un metodo per richiamare la funzione Lambda tramite una richiesta HTTP](furls-http-invoke-decision.md).

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 in tutte le regioni. AWS Per verificare la disponibilità, consulta [Servizi AWS regionali](https://builder.aws.com/build/capabilities/explore?tab=service-feature) e filtra per`Feature Name = Function URLs`.

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](access-control-resource-based.md) 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 l'URL di una funzione utilizzando la console Lambda e il AWS CLI modello CloudFormation 

**Topics**
+ [Creazione di un URL della funzione (console)](#create-url-console)
+ [Creazione di un URL di funzione (AWS CLI)](#create-url-cli)
+ [Aggiungere l'URL di una funzione a un CloudFormation modello](#urls-cfn)
+ [Cross-origin condivisione delle risorse (CORS)](#urls-cors)
+ [Throttling di URL di funzioni](#urls-throttling)
+ [Disattivazione degli URL della funzione](#urls-deactivating)
+ [Eliminazione degli URL della funzione](#w2aac15c31c75c53)
+ [Controlla l'accesso alla funzione Lambda URLs](urls-auth.md)
+ [Richiamo di URL di funzioni Lambda](urls-invocation.md)
+ [Monitoraggio degli URL della funzione Lambda](urls-monitoring.md)
+ [Selezionare un metodo per richiamare la funzione Lambda tramite una richiesta HTTP](furls-http-invoke-decision.md)
+ [Tutorial: creazione di un endpoint webhook utilizzando l'URL di una funzione Lambda](urls-webhook-tutorial.md)

## Creazione di un URL della funzione (console)
<a name="create-url-console"></a>

Segui queste fasi per creare un URL della funzione usando la console.

### Per creare un URL di funzione per una funzione esistente
<a name="create-url-existing-function"></a>

1. Aprire la pagina [Funzioni](https://console.aws.amazon.com/lambda/home#/functions) della console Lambda.

1. Scegli il nome della funzione per la quale desideri creare l'URL della funzione.

1. Scegli la scheda **Configurazione**, quindi scegli **URL della funzione**.

1. Scegli **Crea URL della funzione**.

1. Per **Tipo di autenticazione**, scegli **AWS\_IAM** o **NONE**. Per ulteriori informazioni sull'autenticazione dell'URL della funzione, consulta [Controllo accessi](urls-auth.md).

1. (Opzionale) Seleziona **Configura CORS** e quindi configura le impostazioni CORS per l'URL della funzione. Per ulteriori informazioni sulla funzionalità CORS, consulta [Cross-origin condivisione delle risorse (CORS)](#urls-cors).

1. Scegli **Save** (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.

### Per creare l'URL di una funzione per un alias esistente
<a name="create-url-existing-alias"></a>

1. Aprire la pagina [Funzioni](https://console.aws.amazon.com/lambda/home#/functions) della console Lambda.

1. Scegli il nome della funzione con l'alias per cui desideri creare l'URL della funzione.

1. Seleziona la scheda **Aliases** (Alias) e quindi scegli il nome dell'alias per cui desideri creare l'URL della funzione.

1. Scegli la scheda **Configuration** (Configurazione), quindi scegli **Function URL** (URL della funzione).

1. Scegli **Crea URL della funzione**.

1. Per **Tipo di autenticazione**, scegli **AWS\_IAM** o **NONE**. Per ulteriori informazioni sull'autenticazione dell'URL della funzione, consulta [Controllo accessi](urls-auth.md).

1. (Opzionale) Seleziona **Configura CORS** e quindi configura le impostazioni CORS per l'URL della funzione. Per ulteriori informazioni sulla funzionalità CORS, consulta [Cross-origin condivisione delle risorse (CORS)](#urls-cors).

1. Scegli **Save** (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.

### Per creare una nuova funzione con un URL di funzione
<a name="create-url-new-function"></a>

**Creazione di una nuova funzione con un URL della funzione (console)**

1. Aprire la pagina [Funzioni](https://console.aws.amazon.com/lambda/home#/functions) della console Lambda.

1. Scegli **Crea funzione**.

1. 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**.

   1. Per **Runtime**, scegliete il linguaggio di runtime che preferite, ad esempio **Node.js 24**.

   1. Per **Architecture** (Architettura), scegli **x86\_64** o **arm64**.

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

1. Espandi **Advanced settings** (Impostazioni avanzate) e quindi seleziona **Function URL** (URL della funzione).

1. Per **Auth type** (Tipo di autenticazione), scegli **AWS\_IAM** o **NONE**. Per ulteriori informazioni sull'autenticazione dell'URL della funzione, consulta [Controllo accessi](urls-auth.md).

1. (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 condivisione delle risorse (CORS)](#urls-cors).

1. 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)
<a name="create-url-cli"></a>

Per creare un URL di funzione 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
```

Un URL di funzione viene aggiunto al qualificatore **prod** per la funzione **my-function**. Per ulteriori informazioni su questi parametri di configurazione, consulta [CreateFunctionUrlConfig](https://docs.aws.amazon.com/lambda/latest/api/API_CreateFunctionUrlConfig.html) nella documentazione di riferimento delle API.

**Nota**  
Per creare l'URL di una funzione tramite AWS CLI, la funzione deve già esistere.

## Aggiungere l'URL di una funzione a un CloudFormation modello
<a name="urls-cfn"></a>

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

### JSON
<a name="urls-cfn-json"></a>

```
{
  "Type" : "AWS::Lambda::Url",
  "Properties" : {
      "AuthType" : String,
      "Cors" : Cors,
      "Qualifier" : String,
      "TargetFunctionArn" : String
    }
}
```

### YAML
<a name="urls-cfn-yaml"></a>

```
Type: AWS::Lambda::Url
Properties: 
  AuthType: String
  Cors: 
    Cors
  Qualifier: String
  TargetFunctionArn: String
```

### Parameters
<a name="urls-cfn-params"></a>
+ (Obbligatorio)`AuthType`: definisce il tipo di autenticazione per l'URL della funzione. I valori possibili sono `AWS_IAM` o `NONE`. Per limitare l'accesso solo agli utenti autenticati, imposta su `AWS_IAM`. Per ignorare l'autenticazione IAM e consentire a qualsiasi utente di effettuare richieste alla propria funzione, imposta su `NONE`.
+ (Opzionale)`Cors`: definisce le [impostazioni CORS](#urls-cors) per l'URL della funzione. Per aggiungere `Cors` alla `AWS::Lambda::Url` risorsa in CloudFormation, utilizzate la seguente sintassi.

    
**Example AWS::Lambda:: Url.Cors (JSON)**  

  ```
  {
    "AllowCredentials" : Boolean,
    "AllowHeaders" : [ String, ... ],
    "AllowMethods" : [ String, ... ],
    "AllowOrigins" : [ String, ... ],
    "ExposeHeaders" : [ String, ... ],
    "MaxAge" : Integer
  }
  ```  
**Example 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-function`
  + **ARN funzione** – `arn:aws:lambda:us-west-2:123456789012:function:my-function`
  + **ARN parziale** – `123456789012:function:my-function`.

## Cross-origin condivisione delle risorse (CORS)
<a name="urls-cors"></a>

Per definire in che modo le diverse origini possono accedere all'URL della funzione, utilizza [cross-origin resource sharing (CORS)](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS). Si consiglia di configurare CORS se si intende chiamare l'URL della funzione da un dominio diverso. Lambda supporta le seguenti intestazioni CORS per gli URL della funzione.


| Intestazioni CORS | Proprietà di configurazione CORS | Valori di esempio | 
| --- | --- | --- | 
| [ Access-Control-Allow-Origin](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin) | `AllowOrigins` | `*` (consente tutte le origini)<br />`https://www.example.com`<br />`http://localhost:60905` | 
| [ Access-Control-Allow-Methods](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods) | `AllowMethods` | `GET`, `POST`, `DELETE`, `*` | 
| [ Access-Control-Allow-Headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers) | `AllowHeaders` | `Date`, `Keep-Alive`, `X-Custom-Header` | 
| [ Access-Control-Expose-Headers](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Expose-Headers) | `ExposeHeaders` | `Date`, `Keep-Alive`, `X-Custom-Header` | 
| [ Access-Control-Allow-Credentials](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials) | `AllowCredentials` | `TRUE` | 
| [ Access-Control-Max-Age](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Max-Age) | `MaxAge` | `5` (default), `300` | 

Quando configuri CORS per l'URL di una funzione utilizzando la console Lambda o il 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
<a name="urls-throttling"></a>

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](configuration-concurrency.md).

## Disattivazione degli URL della funzione
<a name="urls-deactivating"></a>

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
<a name="w2aac15c31c75c53"></a>

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.

1. Aprire la pagina [Funzioni](https://console.aws.amazon.com/lambda/home#/functions) della console Lambda.

1. Scegliere il nome della funzione.

1. Scegli la scheda **Configurazione**, quindi scegli **URL della funzione**.

1. Scegli **Elimina**.

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

1. 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.