Creare una configurazione di routing per un alias Lambda - 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à.

Creare una configurazione di routing per un alias Lambda

Utilizza una configurazione di routing su un alias per inviare una parte del traffico a una seconda versione della funzione. Ad esempio, è possibile ridurre il rischio di distribuzione di una nuova versione configurando l'alias per inviare la maggior parte del traffico alla versione esistente e solo una piccola percentuale di traffico alla nuova versione.

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 configurando un numero maggiore di istanze di concorrenza sottoposte a provisioning durante il periodo in cui il routing degli alias è attivo.

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

  • Entrambe le versioni devono avere la stessa configurazione della coda dead-letter o nessuna configurazione della coda dead-letter.

  • Entrambe le versioni devono essere pubblicate. L'alias non può puntare a $LATEST.

Console
Per configurare il routing su un alias utilizzando la console
Nota

Verificare che la funzione abbia almeno due versioni pubblicate. Per creare versioni aggiuntive, seguire le istruzioni in Gestione delle versioni della funzione Lambda.

  1. Aprire la pagina Funzioni della console Lambda.

  2. Scegliere una funzione.

  3. Scegliere Aliases (Alias) e quindi Create alias (Crea alias).

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

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

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

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

    4. Espandere Weighted alias (Alias ponderato).

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

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

    7. Seleziona Salva.

AWS CLI

Utilizzate i AWS CLI comandi create-alias e update-alias 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 API Lambda:

Determinare quale versione è stata richiamata

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 invia automaticamente ad CloudWatch Amazon Logs START una voce di registro contenente l'ID di versione richiamato per ogni chiamata di funzione. Di seguito è riportato un esempio:

    19:44:37 START RequestId: request id Version: $version

    Per le invocazioni di alias Lambda utilizza la dimensione Executed Version per filtrare i dati del parametro dalla versione richiamata. Per ulteriori informazioni, consulta Visualizza le metriche per le funzioni Lambda.

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