

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

# Creare un alias per una funzione Lambda
<a name="configuration-aliases"></a>

È possibile creare alias per la funzione Lambda. Un alias Lambda è un puntatore a una versione della funzione che è possibile aggiornare. Gli utenti possono accedere alla versione della funzione utilizzando l'alias nome della risorsa Amazon (ARN). Quando si distribuisce una nuova versione, è possibile aggiornare l'alias per utilizzare la nuova versione o dividere il traffico tra due versioni.

------
#### [ Console ]

**Per creare un alias tramite la console**

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

1. Scegliere una funzione.

1. Scegliere **Aliases (Alias)** e quindi **Create alias (Crea alias)**.

1. Nella pagina **Create alias (Crea alias)**, eseguire le operazioni seguenti:

   1. Immettere un **Name (Nome)** per la query.

   1. (Facoltativo) Immettere una **Description (Descrizione)** per l'alias.

   1. Per **Version (Versione)**, scegliere una versione della funzione a cui si desidera puntare l'alias.

   1. (Facoltativo) Per configurare il routing sull'alias, espandere **Weighted alias (Alias ponderato)**. Per ulteriori informazioni, consulta [Implementare le implementazioni canary Lambda utilizzando un alias ponderato](configuring-alias-routing.md).

   1. Seleziona **Save (Salva**.

------
#### [ AWS CLI ]

Per creare un alias tramite la AWS Command Line Interface (AWS CLI), utilizza il comando [create-alias](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/create-alias.html).

```
aws lambda create-alias \
  --function-name my-function \
  --name alias-name \
  --function-version version-number \
  --description " "
```

Per modificare un alias in modo che punti a una nuova versione della funzione, utilizza il comando [update-alias](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/update-alias.html).

```
aws lambda update-alias \
  --function-name my-function \
  --name alias-name \
  --function-version version-number
```

Per eliminare un alias, utilizza il comando [delete-alias](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/delete-alias.html).

```
aws lambda delete-alias \
  --function-name my-function \
  --name alias-name
```

 I comandi AWS CLI nei passaggi precedenti corrispondono alle seguenti operazioni API Lambda:
+ [CreateAlias](https://docs.aws.amazon.com/lambda/latest/api/API_CreateAlias.html)
+ [UpdateAlias](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateAlias.html)
+ [DeleteAlias](https://docs.aws.amazon.com/lambda/latest/api/API_DeleteAlias.html)

------

# Utilizzo degli alias Lambda nelle origini eventi e nelle policy di autorizzazioni
<a name="using-aliases"></a>

Ogni alias ha un ARN univoco. Un alias può puntare solo a una versione della funzione, non a un altro alias. È possibile aggiornare un alias in modo che punti a una nuova versione della funzione.

Le origini eventi, ad esempio Amazon Simple Storage Service (Amazon S3), richiamano la funzione Lambda. Queste origini eventi mantengono un mapping che identifica la funzione da richiamare quando si verificano gli eventi. Se si specifica un alias di funzione Lambda nella configurazione del mapping, non è necessario aggiornare il mapping quando cambia la versione della funzione. Per ulteriori informazioni, consulta [In che modo Lambda elabora i record provenienti da origini eventi basate su flussi e code](invocation-eventsourcemapping.md).

In una policy di risorsa, è possibile concedere le autorizzazioni per le origini eventi per utilizzare la funzione Lambda. Se si specifica un ARN di alias nella policy, non è necessario aggiornare la policy quando cambia la versione della funzione.

## Policy delle risorse
<a name="versioning-permissions-alias"></a>

È possibile utilizzare una [policy basata sulle risorse](access-control-resource-based.md) per concedere a un servizio, a una risorsa o a un account l'accesso alla funzione. L'ambito di tale autorizzazione dipende dal fatto che venga applicata a un alias, a una versione o all'intera funzione. Ad esempio, se si utilizza un nome alias (ad esempio `helloworld:PROD`), l'autorizzazione consente di richiamare la funzione `helloworld` utilizzando l'ARN dell'alias (`helloworld:PROD`).

Se si tenta di richiamare la funzione senza un alias o una versione specifica, viene visualizzato un errore di autorizzazione. Questo errore di autorizzazione si verifica anche se si tenta di richiamare direttamente la versione della funzione associata all'alias.

Ad esempio, il comando AWS CLI seguente concede le autorizzazioni Amazon S3 per richiamare l'alias PROD della funzione `helloworld` se Amazon S3 agisce per conto di `amzn-s3-demo-bucket`.

```
aws lambda add-permission \
  --function-name helloworld \
  --qualifier PROD \
  --statement-id 1 \
  --principal s3.amazonaws.com \
  --action lambda:InvokeFunction \
  --source-arn arn:aws:s3:::amzn-s3-demo-bucket \
  --source-account 123456789012
```

Per ulteriori informazioni sull'utilizzo dei nomi delle risorse nelle policy, consulta [Ottimizzazione delle sezioni Risorse e Condizioni delle policy](lambda-api-permissions-ref.md).

# Implementare le implementazioni canary Lambda utilizzando un alias ponderato
<a name="configuring-alias-routing"></a>

È possibile utilizzare un alias ponderato per suddividere il traffico tra due diverse [versioni](configuration-versions.md) della stessa funzione. Con questo approccio, puoi testare nuove versioni delle tue funzioni con una piccola percentuale di traffico e ripristinarle rapidamente se necessario. Questa operazione è nota come [implementazione canary](https://docs.aws.amazon.com/whitepapers/latest/overview-deployment-options/canary-deployments.html). Le implementazioni Canary differiscono dalle blue/green distribuzioni in quanto espongono la nuova versione solo a una parte delle richieste anziché spostare tutto il traffico contemporaneamente.

È possibile puntare un alias a un massimo di due versioni della funzione Lambda. Le versioni devono soddisfare i seguenti criteri:
+ Entrambe le versioni devono disporre dello stesso [ruolo di esecuzione](lambda-intro-execution-role.md).
+ Entrambe le versioni devono avere la stessa configurazione della [coda dead-letter](invocation-async-retain-records.md#invocation-dlq) o nessuna configurazione della coda dead-letter.
+ Entrambe le versioni devono essere pubblicate. L'alias non può puntare a `$LATEST`.

**Nota**  
Lambda utilizza un modello probabilistico semplice per distribuire il traffico tra le due versioni delle funzioni. A livelli di traffico bassi, è possibile che si verifichi una variazione elevata tra la percentuale di traffico configurata e quella effettiva in ciascuna versione. Se la tua funzione utilizza la concorrenza con provisioning, puoi evitare [invocazioni spillover](monitoring-metrics-types.md#invocation-metrics) configurando un numero maggiore di istanze di concorrenza sottoposte a provisioning durante il periodo in cui il routing degli alias è attivo. 

## Creare un alias ponderato
<a name="create-weighted-alias"></a>

------
#### [ Console ]

**Per configurare il routing utilizzando la console**
**Nota**  
Verificare che la funzione abbia almeno due versioni pubblicate. Per creare versioni aggiuntive, seguire le istruzioni in [Creazione di versioni delle funzioni](configuration-versions.md#configuration-versions-config).

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

1. Scegliere una funzione.

1. Scegliere **Aliases (Alias)** e quindi **Create alias (Crea alias)**.

1. Nella pagina **Create alias (Crea alias)**, eseguire le operazioni seguenti:

   1. Immettere un **Name (Nome)** per la query.

   1. (Facoltativo) Immettere una **Description (Descrizione)** per l'alias.

   1. Per **Version (Versione)**, scegliere la prima versione della funzione a cui si desidera puntare l'alias.

   1. Espandere **Weighted alias (Alias ponderato)**.

   1. In **Additional version (Versione aggiuntiva)**, scegliere la seconda versione della funzione a cui si desidera puntare l'alias.

   1. Per **Weight (%) (Ponderazione %)**, digitare un valore di ponderazione per la funzione. *Weight* (Ponderazione) è la percentuale di traffico assegnata alla versione quando l'alias viene invocato. La prima versione riceve la ponderazione residua. Ad esempio se si specifica il 10 percento per **Additional version (Versione aggiuntiva)**, alla prima versione viene automaticamente assegnato il 90 percento.

   1. Scegli **Save** (Salva).

------
#### [ AWS CLI ]

Utilizzate i comandi [create-alias e [AWS CLI update-alias](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/update-alias.html)](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/create-alias.html) per configurare i pesi del traffico tra due versioni di funzioni. Quando crei o aggiorni l'alias, specifica il peso del traffico nel parametro `routing-config`.

Nell'esempio seguente viene creato un alias della funzione Lambda denominato **routing-alias** che punta alla versione 1 della funzione. La versione 2 della funzione riceve il 3% del traffico. Il restante 97 percento del traffico viene instradato alla versione 1.

```
aws lambda create-alias \
  --name routing-alias \
  --function-name my-function \
  --function-version 1  \
  --routing-config AdditionalVersionWeights={"2"=0.03}
```

Utilizza il comando `update-alias` per aumentare la percentuale di traffico in ingresso alla versione 2. Nell'esempio seguente, aumenti il traffico al 5%.

```
aws lambda update-alias \
  --name routing-alias \
  --function-name my-function \
  --routing-config AdditionalVersionWeights={"2"=0.05}
```

Per instradare tutto il traffico alla versione 2, utilizza il comando `update-alias` per modificare la proprietà `function-version` in modo che l'alias punti alla versione 2. Il comando reimposta anche la configurazione di routing.

```
aws lambda update-alias \
  --name routing-alias \
  --function-name my-function  \
  --function-version 2 \
  --routing-config AdditionalVersionWeights={}
```

 I AWS CLI comandi nei passaggi precedenti corrispondono alle seguenti operazioni dell'API Lambda:
+ [CreateAlias](https://docs.aws.amazon.com/lambda/latest/api/API_CreateAlias.html)
+ [UpdateAlias](https://docs.aws.amazon.com/lambda/latest/api/API_UpdateAlias.html)

------

## Determinazione della versione richiamata
<a name="determining-routing-version"></a>

Quando configuri i pesi del traffico tra due versioni di funzioni, esistono due modi per determinare la versione della funzione Lambda invocata:
+ **CloudWatch Registri**: Lambda emette automaticamente `START` una voce di registro che contiene l'ID di versione richiamato per ogni chiamata di funzione. Esempio:

  `START RequestId: 1dh194d3759ed-4v8b-a7b4-1e541f60235f Version: 2` 

  Per le invocazioni di alias Lambda utilizza la dimensione `ExecutedVersion` per filtrare i dati del parametro dalla versione richiamata. Per ulteriori informazioni, consulta [Visualizzazione di parametri per le funzioni Lambda](monitoring-metrics-view.md).
+ **Payload della risposta (invocazioni sincrone)** - Le risposte a invocazioni sincrone della funzione includono un'intestazione `x-amz-executed-version` per indicare quale versione della funzione è stata invocata.

## Creare una implementazione continua con alias ponderati
<a name="lambda-rolling-deployments"></a>

Usa AWS CodeDeploy and AWS Serverless Application Model (AWS SAM) per creare una distribuzione continua che rilevi automaticamente le modifiche al codice della funzione, distribuisca una nuova versione della funzione e aumenti gradualmente la quantità di traffico che fluisce verso la nuova versione. La quantità di traffico e la velocità dell'aumento sono parametri che è possibile configurare.

In una distribuzione continua, AWS SAM esegue le seguenti attività:
+ Configura la funzione Lambda e crea un alias. La configurazione del routing con alias ponderati è la funzionalità che implementa l'implementazione in sequenza.
+ Crea un' CodeDeploy applicazione e un gruppo di distribuzione. Il gruppo di distribuzione gestisce l'implementazione in sequenza e il rollback (se necessario).
+ Rileva quando viene creata una nuova versione della funzione Lambda.
+ Trigger CodeDeploy per avviare la distribuzione della nuova versione.

### Modello di esempio AWS SAM
<a name="sam-template"></a>

Nell'esempio seguente viene illustrato un [modello AWS SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-basics.html) per una semplice distribuzione in sequenza. 

```
AWSTemplateFormatVersion : '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: A sample SAM template for deploying Lambda functions

Resources:
# Details about the myDateTimeFunction Lambda function
  myDateTimeFunction:
    Type: [AWS::Serverless::Function](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/sam-resource-function.html)
    Properties:
      Handler: myDateTimeFunction.handler
      Runtime: nodejs24.x
# Creates an alias named "live" for the function, and automatically publishes when you update the function.
      AutoPublishAlias: live
      DeploymentPreference:
# Specifies the deployment configuration
          Type: Linear10PercentEvery2Minutes
```

Questo modello definisce una funzione Lambda denominata `myDateTimeFunction` con le seguenti proprietà. 

**AutoPublishAlias **  
La proprietà `AutoPublishAlias` crea un alias denominato `live`. Inoltre, il framework AWS SAM rileva automaticamente quando viene salvato il nuovo codice per la funzione. Il framework pubblica quindi una nuova versione di funzione e aggiorna l'alias `live` in modo che punti alla nuova versione.

**DeploymentPreference**  
La `DeploymentPreference` proprietà determina la velocità con cui l' CodeDeploy applicazione sposta il traffico dalla versione originale della funzione Lambda alla nuova versione. Il valore `Linear10PercentEvery2Minutes` sposta un ulteriore dieci percento del traffico alla nuova versione ogni due minuti.   
Per l'elenco delle configurazioni di distribuzione predefinite, consulta [Configurazioni di distribuzione](https://docs.aws.amazon.com/codedeploy/latest/userguide/deployment-configurations.html). 

Per ulteriori informazioni su come creare distribuzioni continue con CodeDeploy and AWS SAM, consulta quanto segue:
+ [Tutorial: Implementa una funzione CodeDeploy Lambda aggiornata con e AWS Serverless Application Model](https://docs.aws.amazon.com/codedeploy/latest/userguide/tutorial-lambda-sam.html)
+ [Distribuzione graduale di applicazioni serverless con AWS SAM](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/automating-updates-to-serverless-apps.html)