Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Activación y administración de Lambda SnapStart

Modo de enfoque
Activación y administración de Lambda SnapStart - AWS Lambda

Para utilizar SnapStart, active SnapStart en una función de Lambda nueva o existente. A continuación, publique e invoque una versión de la función.

Activación de SnapStart (consola)

Para activar SnapStart para una función
  1. Abra la página de Funciones en la consola de Lambda.

  2. Elija el nombre de una función.

  3. Elija Configuration (Configuración) y, a continuación, General configuration (Configuración general).

  4. En el panel de General configuration (Configuración general), elija Edit (Editar).

  5. En la página Edit basic settings (Editar la configuración básica), para SnapStart, seleccione Published versions (Versiones publicadas).

  6. Seleccione Save (Guardar).

  7. Publique una versión de la función. Lambda inicializa el código, crea una instantánea del entorno de ejecución inicializado y, a continuación, almacena la instantánea en caché para acceder a ella con baja latencia.

  8. Invoque la versión de la función.

Activación de SnapStart (AWS CLI)

Para activar SnapStart para una función existente
  1. Actualice la configuración de la función ejecutando el comando update-function-configuration con la opción --snap-start.

    aws lambda update-function-configuration \ --function-name my-function \ --snap-start ApplyOn=PublishedVersions
  2. Utilice el comando publish-version para publicar una versión de la función.

    aws lambda publish-version \ --function-name my-function
  3. Confirme que SnapStart está activado para la versión de la función; para ello, ejecute el comando get-function-configuration y especifique el número de versión. El siguiente ejemplo especifica la versión 1.

    aws lambda get-function-configuration \ --function-name my-function:1

    Si la respuesta muestra que OptimizationStatus es On y Estado es Active, SnapStart se activa y hay una instantánea disponible para la versión de la función especificada.

    "SnapStart": { "ApplyOn": "PublishedVersions", "OptimizationStatus": "On" }, "State": "Active",
  4. Para invocar la versión de la función, ejecute el comando invoke y especifique la versión. El siguiente ejemplo invoca la versión 1.

    aws lambda invoke \ --cli-binary-format raw-in-base64-out \ --function-name my-function:1 \ --payload '{ "name": "Bob" }' \ response.json

    La opción cli-binary-format es obligatoria si va a utilizar la versión 2 de la AWS CLI. Para que esta sea la configuración predeterminada, ejecute aws configure set cli-binary-format raw-in-base64-out. Para obtener más información, consulte Opciones de la línea de comandos globales compatibles con AWS CLI en la Guía del usuario de la AWS Command Line Interface versión 2.

Para activar SnapStart cuando crea una nueva función
  1. Ejecute el comando create-function para crear una función con la opción --snap-start. Para --role, especifique el nombre de recurso de Amazon (ARN) del rol de ejecución.

    aws lambda create-function \ --function-name my-function \ --runtime "java21" \ --zip-file fileb://my-function.zip \ --handler my-function.handler \ --role arn:aws:iam::111122223333:role/lambda-ex \ --snap-start ApplyOn=PublishedVersions
  2. Cree una versión con el comando publish-version.

    aws lambda publish-version \ --function-name my-function
  3. Confirme que SnapStart está activado para la versión de la función; para ello, ejecute el comando get-function-configuration y especifique el número de versión. El siguiente ejemplo especifica la versión 1.

    aws lambda get-function-configuration \ --function-name my-function:1

    Si la respuesta muestra que OptimizationStatus es On y Estado es Active, SnapStart se activa y hay una instantánea disponible para la versión de la función especificada.

    "SnapStart": { "ApplyOn": "PublishedVersions", "OptimizationStatus": "On" }, "State": "Active",
  4. Para invocar la versión de la función, ejecute el comando invoke y especifique la versión. El siguiente ejemplo invoca la versión 1.

    aws lambda invoke \ --cli-binary-format raw-in-base64-out \ --function-name my-function:1 \ --payload '{ "name": "Bob" }' \ response.json

    La opción cli-binary-format es obligatoria si va a utilizar la versión 2 de la AWS CLI. Para que esta sea la configuración predeterminada, ejecute aws configure set cli-binary-format raw-in-base64-out. Para obtener más información, consulte Opciones de la línea de comandos globales compatibles con AWS CLI en la Guía del usuario de la AWS Command Line Interface versión 2.

Activación de SnapStart (API)

Para activar SnapStart
  1. Realice una de las siguientes acciones:

  2. Publique una versión de la versión con la acción publish-version. Lambda inicializa el código, crea una instantánea del entorno de ejecución inicializado y, a continuación, almacena la instantánea en caché para acceder a ella con baja latencia.

  3. Confirme que SnapStart esté activado para la versión de la función mediante la acción GetFunctionConfiguration. Especifique un número de versión para confirmar que SnapStart está activado para esa versión. Si la respuesta muestra que OptimizationStatus es On y Estado es Active, SnapStart se activa y hay una instantánea disponible para la versión de la función especificada.

    "SnapStart": { "ApplyOn": "PublishedVersions", "OptimizationStatus": "On" }, "State": "Active",
  4. Invoque la versión de la función con la acción Invoke.

Lambda SnapStart y estados de la función

Se pueden producir los siguientes estados de función al utilizar SnapStart.

Pendiente

Lambda está inicializando el código y tomando una instantánea del entorno de ejecución inicializado. Las invocaciones u otras acciones de API que actúen en la versión de la función producirán errores.

Activo

La creación de instantáneas está completa y puede invocar la función. Para usar SnapStart, debe invocar la versión de la función publicada, no la versión no publicada ($LATEST).

Inactivo

El estado Inactive se puede producir cuando Lambda regenera periódicamente instantáneas de funciones para aplicar actualizaciones de software. En este caso, si la función no se inicializa, puede entrar en el estado Inactive.

Para las funciones que utilizan un tiempo de ejecución de Java, Lambda elimina las instantáneas después de 14 días sin una invocación. Si invoca la versión de la función transcurridos 14 días, Lambda devuelve una respuesta SnapStartNotReadyException y comienza a inicializar una nueva instantánea. Espere hasta que la versión de la función alcance el estado Active y, a continuación, vuelva a invocarla.

Con error

Lambda encontró un error al ejecutar el código de inicialización o al crear la instantánea.

Actualización de una instantánea

Lambda crea una instantánea para cada versión de función publicada. Para actualizar una instantánea, publique una nueva versión de la función.

Uso de SnapStart con AWS SDK

Para realizar llamadas AWS SDK desde su función, Lambda genera un conjunto efímero de credenciales al asumir el rol de ejecución de la función. Estas credenciales están disponibles como variables de entorno durante la invocación de la función. No es necesario proporcionar las credenciales de SDK directamente en el código. De forma predeterminada, la cadena de proveedores de credenciales comprueba secuencialmente cada lugar en el que puede configurar las credenciales y elige el primero disponible, normalmente las variables de entorno (AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, y AWS_SESSION_TOKEN).

nota

Cuando SnapStart se activa, el tiempo de ejecución de Lambda utiliza automáticamente las credenciales del contenedor (AWS_CONTAINER_CREDENTIALS_FULL_URI y AWS_CONTAINER_AUTHORIZATION_TOKEN) en lugar de las variables de entorno de la clave de acceso. Esto evita que las credenciales caduquen antes de que se restablezca la función.

Uso de SnapStart con AWS CloudFormation, AWS SAM y AWS CDK

  • AWS CloudFormation: declare la entidad SnapStart en su plantilla.

  • AWS Serverless Application Model (AWS SAM): declare la propiedad SnapStart en su plantilla.

  • AWS Cloud Development Kit (AWS CDK): utilice el tipo SnapStartProperty.

Eliminación de instantáneas

Lambda elimina las instantáneas cuando sucede lo siguiente:

  • Elimina la función o la versión de la función.

  • Solo tiempos de ejecución de Java: no invoca la versión de la función durante 14 días. Tras 14 días sin una invocación, la versión de la función pasa al estado Inactive (Inactivo). Si invoca la versión de la función transcurridos 14 días, Lambda devuelve una respuesta SnapStartNotReadyException y comienza a inicializar una nueva instantánea. Espere hasta que la versión de la función alcance el estado Active (Activo) y, a continuación, vuelva a invocarla.

Lambda elimina todos los recursos asociados a las instantáneas eliminadas de acuerdo con el Reglamento General de Protección de Datos (RGPD).

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.