Versiones de las funciones Lambda - AWS Lambda

Versiones de las funciones Lambda

Puede usar versiones para administrar la implementación de funciones. Por ejemplo, puede publicar una nueva versión de una función para realizar pruebas beta sin que esto afecte a los usuarios de la versión de producción estable. Lambda crea una nueva versión de la función cada vez que esta se publica. 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 funciones en la consola.

Puede crear una versión de función usando la consola 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 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 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 $LAST 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 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 condiciones 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 funciones Lambda.