Crear una configuración de direccionamiento para un alias de Lambda
Utilice la configuración de direccionamiento en un alias para enviar una parte del tráfico a una segunda versión de la función. Por ejemplo, puede reducir el riesgo de implementar una nueva versión configurando el alias para enviar la mayor parte del tráfico a la versión existente y solo un pequeño porcentaje del tráfico a la nueva versión.
Lambda utiliza un modelo probabilístico simple para distribuir el tráfico entre las dos versiones de funciones. En niveles de tráfico bajos, es posible que vea una gran variación entre el porcentaje configurado y el porcentaje real de tráfico en cada versión. Si su función usa la concurrencia aprovisionada, puede evitar Invocaciones de superación configurando un mayor número de instancias de simultaneidad aprovisionadas durante el tiempo en que el enrutamiento de alias está activo.
Puede apuntar un alias a un máximo de dos versiones de una función de Lambda. Las versiones deben cumplir los siguientes criterios:
-
Ambas versiones deben tener el mismo rol de ejecución.
-
Ambas versiones deben tener la misma configuración de cola de mensajes fallidos o ninguna configuración de cola de mensajes fallidos.
-
Ambas versiones deben publicarse. El alias no puede apuntar a $LATEST
.
- Console
-
Para configurar el direccionamiento en un alias con la consola
Abra la página de Funciones en la consola de Lambda.
-
Elija una función.
-
Elija Alias y, a continuación, elija Crear alias.
-
En la página Crear alias, haga lo siguiente:
-
En Nombre, escriba el nombre del alias.
-
(Opcional) En Descripción, escriba una descripción del alias.
-
En Versión, elija la primera versión de la función a la que desea que apunte el alias.
-
Expanda Weighted alias (Alias ponderados).
-
En Versión adicional, elija la segunda versión de la función a la que desea que apunte el alias.
-
En Weight (%) [Ponderación (%)], especifique la ponderación de la función. La ponderación es el porcentaje de tráfico que se asigna a dicha versión cuando se invoca el alias. La primera versión recibe la ponderación residual. Por ejemplo, si especifica un 10 por ciento en Additional version (Versión adicional), a la primera versión se asigna automáticamente el 90 %.
-
Seleccione Guardar.
- AWS CLI
-
Utilice los comandos create-alias y update-alias de AWS CLI para configurar las ponderaciones de tráfico entre dos versiones de funciones. Cuando se crea o actualiza el alias, se especifica la ponderación del tráfico en el parámetro routing-config
.
En el ejemplo siguiente se crea un alias de una función de Lambda llamado routing-alias que apunta a la versión 1 de la función. La versión 2 de la función recibe el 3 por ciento del tráfico. El 97 por ciento restante del tráfico se dirige a la versión 1.
aws lambda create-alias \
--name routing-alias \
--function-name my-function \
--function-version 1 \
--routing-config AdditionalVersionWeights={"2"=0.03}
Utilice el comando update-alias
para aumentar el porcentaje de tráfico entrante a la versión 2. En el ejemplo siguiente, aumenta el tráfico al 5 por ciento.
aws lambda update-alias \
--name routing-alias \
--function-name my-function \
--routing-config AdditionalVersionWeights={"2"=0.05}
So desea dirigir todo el tráfico a la versión 2, utilice el comando update-alias
para cambiar la propiedad function-version
y dirigir el alias a la versión 2. El comando también restablece la configuración de direccionamiento.
aws lambda update-alias \
--name routing-alias \
--function-name my-function \
--function-version 2 \
--routing-config AdditionalVersionWeights={}
Los comandos de la AWS CLI mencionados en los pasos anteriores se corresponden con las siguientes operaciones de la API de Lambda:
Cómo saber qué versión se invocó
Al configurar las ponderaciones de tráfico entre dos versiones de función, hay dos formas de determinar la versión de la función de Lambda que se ha invocado:
-
CloudWatch Logs: Lambda emite automáticamente una entrada de log START
que contiene el ID de la versión invocada a Amazon CloudWatch Logs para cada invocación de función. A continuación, se muestra un ejemplo:
19:44:37 START RequestId: request id
Version:
$version
En las invocaciones de alias, Lambda utiliza la dimensión Executed Version
para filtrar los datos de las métricas por la versión ejecutada. Para obtener más información, consulte Ver las métricas de funciones de Lambda.
-
Carga de respuesta (invocaciones sincrónicas): las respuestas a invocaciones de funciones sincrónicas incluyen un encabezado x-amz-executed-version
para indicar qué versión de función se ha invocado.