Versiones de la función de Lambda
Puede usar versiones para administrar la implementación de funciones. Por ejemplo, puede publicar una nueva versión de una función para pruebas beta sin afectar a los usuarios de la versión de producción estable. Lambda crea una nueva versión de la función de cada vez que se publica la función. La nueva versión es una copia de la versión no publicada de la función. La versión no publicada se denomina $LATEST.
nota
Lambda no crea una nueva versión si el código de la versión no publicada es el mismo que el de la versión anterior publicada. Debe implementar cambios de código en $LATEST antes de poder crear una nueva versión.
La versión de la función contiene la siguiente información:
-
El código de función y todas las dependencias asociadas.
-
El identificador y la versión del tiempo de ejecución de Lambda que utiliza la función.
-
Todos las configuraciones de la función, incluidas las variables de entorno.
-
Nombre de recurso de Amazon (ARN) único que identifica esta versión de la función.
Cuando se utilizan los controles de administración del tiempo de ejecución con el modo Auto (Automático), la versión del tiempo de ejecución utilizada por la versión de la función se actualiza automáticamente. Cuando se utilizan los modos Function update (Actualización de funciones) o Manual, no se actualiza la versión del tiempo de ejecución. Para obtener más información, consulte Actualizaciones de tiempo de ejecución de Lambda.
Creación de versiones de funciones
Puede cambiar el código y la configuración de la función solo en la versión no publicada de una función. Cuando se publica una versión, Lambda bloquea el código y la mayoría de las opciones de configuración para garantizar una experiencia uniforme a los usuarios de dicha versión. Para obtener más información acerca de la configuración de funciones, consulte Configuración de las opciones de las funciones de Lambda.
Puede crear una versión de función usando la consola de Lambda.
Para crear una nueva versión de función
Abra la página de Functions
(Funciones) en la consola de Lambda. -
Elija una función y, a continuación, elija Versiones.
-
En la página de configuración de versiones, elija Publicar nueva versión.
-
(Opcional) Especifique una descripción de la versión.
-
Elija Publish.
También puede publicar una versión de una función con la operación de la API PublishVersion.
El siguiente comando AWS CLI publica una nueva versión de una función. La respuesta devuelve la información de configuración sobre la nueva versión, incluido el número de la versión y el ARN de la función con el sufijo de la versión.
aws lambda publish-version --function-name my-function
Debería ver los siguientes datos de salida:
{ "FunctionName": "my-function", "FunctionArn": "arn:aws:lambda:us-east-2:123456789012:function:my-function:1", "Version": "1", "Role": "arn:aws:iam::123456789012:role/lambda-role", "Handler": "function.handler", "Runtime": "nodejs18.x", ... }
nota
Lambda asigna números de secuencia que aumentan de manera monótona para el control de versiones. Lambda nunca vuelve a utilizar los números de versión, ni siquiera después de eliminar y volver a crear una función.
Uso de versiones
Puede hacer referencia a la función de Lambda utilizando un ARN completo o incompleto.
-
ARN completo: ARN de la función con el sufijo de la versión. El siguiente ejemplo hace referencia a la versión 42 de la función
helloworld
.arn:aws:lambda:aws-region:acct-id:function:helloworld:42
-
ARN incompleto: ARN de la función sin el sufijo de la versión.
arn:aws:lambda:aws-region:acct-id:function:helloworld
Puede utilizar un ARN completo o incompleto en todas las operaciones de API que corresponda. Sin embargo, no puede utilizar un ARN incompleto para crear un alias.
Si decide no publicar versiones de las funciones, puede utilizar tanto el ARN completo como incompleto en la asignación de orígenes de eventos. Cuando se invoca una función usando un ARN incompleto, Lambda invoca a $LATEST implícitamente.
Lambda solo publica una nueva versión de la función si el código nunca se ha publicado o si ha cambiado desde la última versión publicada. Si no hay ningún cambio, la versión de la función sigue siendo la que se publicó más recientemente.
El ARN completo de cada versión de una función de Lambda es único. Después de publicar una versión, no puede cambiar el ARN o el código de función.
Concesión de permisos
Puede utilizar una política basada en recursos o una política basada en identidades para conceder acceso a la función. El ámbito del permiso dependerá de si la política se aplica a una función o a una versión de la función. Para obtener más información sobre los nombres de recursos de funciones en las políticas, consulte Recursos y condición para acciones de Lambda.
Puede simplificar la administración de los orígenes de eventos y las políticas de AWS Identity and Access Management (IAM) utilizando un alias de función. Para obtener más información, consulte Alias de función de Lambda.