Administrar las versiones de la función de Lambda - AWS Lambda

Administrar las 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

Para crear una versión nueva de la función, primero debe realizar cambios en la versión no publicada ($LATEST). Estos cambios pueden incluir la actualización del código o la modificación de la configuración. Si $LATEST es idéntica a una versión publicada anteriormente, no podrá crear una nueva versión hasta que implemente los cambios en $LATEST.

Tras publicar la versión de una función, su código, tiempo de ejecución, arquitectura, memoria, capas y la mayoría de las demás configuraciones son inmutables. Esto significa que no puede cambiar estas configuraciones sin publicar una nueva versión de $LATEST. Puede configurar los siguientes elementos para una versión de función publicada:

nota

Cuando se utilizan los controles de administración del tiempo de ejecución con el modo 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 Cómo entender la forma en que Lambda administra las actualizaciones de las versiones de tiempo de ejecució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, 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.

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 Publicar.

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": "nodejs20.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 $LATEST implícitamente.

Lambda solo publica una nueva versión de la función si el código nunca se ha publicado o si este 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 Afinar las secciones de recursos y condiciones de las políticas.

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 Crear un alias para una función de Lambda.