Versiones de la función de Lambda - AWS Lambda

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 de la función contiene la siguiente información:

  • El código de función y todas las dependencias asociadas.

  • Tiempo de ejecución de Lambda que invoca la función.

  • Todos los ajustes 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.

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, el código y la mayoría de las opciones de configuración se bloquean 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

  1. Abra la página de Funciones en la consola de Lambda.

  2. Elija una función y, a continuación, elija Versiones.

  3. En la página de configuración de versiones, elija Publicar nueva versión.

  4. (Opcional) Especifique una descripción de la versión.

  5. Elija Publish.

Administración de versiones con la API de Lambda

Para publicar una versión de una función, utilice la operación de API de PublishVersion.

El siguiente ejemplo 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": "nodejs12.x", ... }

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.