Alias de funciones Lambda - AWS Lambda

Alias de funciones Lambda

Puede crear uno o varios alias para una función de Lambda. Un alias de Lambda es como un puntero de una versión específica de la función. Los usuarios pueden acceder a la versión de la función utilizando el nombre de recurso de Amazon (ARN) del alias.

Creación de un alias de función (Consola)

Puede crear un alias de función usando la consola Lambda.

Para crear un alias

  1. Abra la Página de funciones en la consola de Lambda.

  2. Elija una función.

  3. Elija Alias y, a continuación, elija Crear alias.

  4. En la página Crear alarma, realice lo siguiente:

    1. En Nombre, escriba el nombre del alias.

    2. (Opcional) En Descripción, escriba una descripción del alias.

    3. En Versión, elija la versión de la función a la que desee que apunte el alias.

    4. (Opcional) Para configurar el direccionamiento del alias, expanda Weighted alias (Alias ponderado). Para obtener más información, consulte Configuración de direccionamiento de alias.

    5. Seleccione Save.

Administración de alias con la API de Lambda

Para crear un alias a través de AWS Command Line Interface (AWS CLI), utilice el comando create-alias.

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

Si desea cambiar un alias para que apunte a una nueva versión de la función, utilice el comando update-alias.

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

Para eliminar un alias, utilice el comando delete-alias.

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

Los comandos de la AWS CLI mencionados en los pasos anteriores se corresponden con las siguientes operaciones de la API de Lambda:

Uso de alias

Cada alias tiene un ARN único. Un alias solo puede apuntar a una versión de una función, no a otro alias. Puede actualizar un alias para que apunte a una nueva versión de la función.

Los orígenes de eventos, como Amazon Simple Storage Service (Amazon S3), invocan la función Lambda. Estos orígenes de eventos mantienen un mapeo que identifica la función que invocarán cuando se produzcan eventos. Si especifica un alias de función de Lambda en la configuración de asignación, no es necesario actualizar el mapeo cuando cambie la versión de la función. Para obtener más información, consulte Mapeos de origen de eventos de AWS Lambda.

En una política de recursos, puede conceder permisos para que los orígenes de eventos utilicen la función de Lambda. Si especifica un ARN de alias en la política, no es necesario que actualice la política cuando cambie la versión de la función.

Políticas de recursos

Puede utilizar una política basada en recursos para proporcionar a la función acceso a un servicio, recurso o cuenta. El ámbito de ese permiso dependerá de si se aplica a un alias, a una versión o a toda la función. Por ejemplo, si utiliza un nombre de alias (como helloworld:PROD), el permiso le permitirá invocar la función helloworld utilizando el ARN del alias (helloworld:PROD).

Si intenta invocar la función sin un alias o una versión específica, se producirá un error con los permisos. Este error de los permisos tendrá lugar aunque intente invocar directamente la versión de la función asociada al alias.

Por ejemplo, el siguiente comando de AWS CLI otorga permisos a Amazon S3 para invocar el alias PROD de la función helloworld cuando Amazon S3 actúa en nombre de examplebucket.

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

Para obtener más información sobre el uso de nombres de recursos en las políticas, consulte Recursos y condiciones para acciones de Lambda.

Configuración de direccionamiento de alias

Utilice la configuración de direccionamiento en un alias para enviar una parte del tráfico a una segunda versión de 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.

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.

Para configurar el direccionamiento en un alias

nota

Verifique que la función tenga al menos dos versiones publicadas. Si necesita crear otras versiones, siga las instrucciones que se indican en Versiones de las funciones Lambda.

  1. Abra la Página de funciones en la consola de Lambda.

  2. Elija una función.

  3. Elija Alias y, a continuación, elija Crear alias.

  4. En la página Crear alarma, realice lo siguiente:

    1. En Nombre, escriba el nombre del alias.

    2. (Opcional) En Descripción, escriba una descripción del alias.

    3. En Versión, elija la primera versión de la función a la que desea que apunte el alias.

    4. Expanda Weighted alias (Alias ponderados).

    5. En Versión adicional, elija la segunda versión de la función a la que desea que apunte el alias.

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

    7. Seleccione Save.

Configurar el direccionamiento del alias

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 ha invocado

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: en cada invocación de la función, Lambda emite automáticamente una entrada de registro START que contiene el ID de la versión invocada y que va dirigida a Amazon CloudWatch Logs. 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 Trabajar con métricas de funciones de AWS 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.