View a markdown version of this page

SDK de ejecución duradera - AWS Lambda

SDK de ejecución duradera

El SDK de ejecución duradera es la base para crear funciones duraderas. Proporciona primitivas para comprobar el progreso, gestionar los reintentos y administrar el flujo de ejecución. El SDK elimina la complejidad de la administración y reproducción de los puntos de control, y permite escribir código secuencial que se vuelve automáticamente tolerante a errores.

El SDK está disponible para JavaScript, TypeScript, Python y Java. Para obtener la documentación completa de la API, los tutoriales de inicio rápido y las guías específicas del lenguaje, consulte la Guía para desarrolladores del SDK de ejecución duradera de AWS.

Operaciones que realiza el SDK

Administración de puntos de control: el SDK crea puntos de control automáticamente a medida que la función ejecuta operaciones duraderas. Cada punto de control registra el tipo de operación, las entradas y los resultados. Cuando la función completa un paso, el SDK conserva el punto de control antes de continuar. Esto garantiza que la función pueda reanudarse después de cualquier operación completada en caso de interrupción.

Coordinación de reproducción: cuando la función se reanuda tras una pausa o interrupción, el SDK realiza la reproducción. Ejecuta el código desde el principio, pero omite las operaciones completadas y utiliza los resultados de los puntos de control almacenados en lugar de volver a ejecutarlos. El SDK garantiza que la reproducción sea determinista. Con las mismas entradas y el mismo registro de puntos de control, la función produce los mismos resultados.

Aislamiento de estados: el SDK mantiene el estado de ejecución por separado de la lógica empresarial. Cada ejecución duradera tiene su propio registro de puntos de control al que no pueden acceder las demás ejecuciones. El SDK cifra los datos en reposo de los puntos de control y garantiza que el estado se mantenga uniforme en todas las reproducciones.

Para obtener una explicación detallada del funcionamiento de los puntos de control y del comportamiento de reproducción, consulta los Conceptos clave en la Guía para desarrolladores del SDK de ejecución duradera de AWS.

Operaciones duraderas

El SDK proporciona un objeto DurableContext a la función. Este contexto reemplaza el contexto estándar de Lambda y proporciona métodos para crear puntos de control, administrar el flujo de ejecución y coordinar con sistemas externos.

DurableContext proporciona las siguientes operaciones para crear flujos de trabajo duraderos:

Operación Descripción
N.° de paso Ejecute y controle una unidad de trabajo mediante estrategias de reintento y semánticas de ejecución configurables.
Wait Pause la ejecución durante un tiempo específico sin consumir recursos de cómputo.
Wait for Condition Sondee una condición con creación automática de puntos de control entre intentos.
Devolución de llamada Pausa la ejecución y espera a que un sistema externo envíe información a través de la API de Lambda.
Invoke Llame a otra función de Lambda y espere su resultado, con puntos de control automáticos.
Parallel Ejecute varias operaciones de forma simultánea a través de políticas de finalización configurables.
Asignación Procese cada elemento de una colección de forma simultánea con el control de concurrencia opcional.
Child Context Cree un contexto de ejecución aislado para agrupar operaciones múltiples.

Cada operación duradera crea puntos de control automáticamente, lo que garantiza que la función pueda reanudarse desde cualquier punto. Para obtener una referencia detallada de la API, ejemplos de código y usos específicos del lenguaje, consulte la Referencia del SDK en la Guía para desarrolladores del SDK de ejecución duradera de AWS.

Cómo se mide la durabilidad de las operaciones

Cada operación duradera a la que llama mediante DurableContext crea puntos de control para seguir el progreso de la ejecución y almacenar los datos de estado. Estas operaciones incurren en gastos en función de su uso, y los puntos de control pueden contener datos que contribuyen a los costos de escritura y retención de datos. Los datos almacenados incluyen los datos de los eventos de invocación, las cargas útiles devueltas por los pasos y los datos transferidos cuando se realizan las devoluciones de llamada. Comprender cómo se miden las operaciones duraderas lo ayudará a estimar los costos de ejecución y a optimizar sus flujos de trabajo. Consulte la página de Precios de Lambda para obtener información sobre precios.

El tamaño de la carga útil se refiere al tamaño de los datos serializados que conserva una operación duradera. Los datos se miden en bytes, y el tamaño puede variar según el serializador utilizado por la operación. La carga útil de una operación podría ser el resultado en sí mismo de una finalización exitosa o el objeto de error serializado si la operación fallara.

Operaciones básicas

Las operaciones básicas son los componentes fundamentales de las funciones duraderas:

Operación Temporización de los puntos de control Número de operaciones Persistencia de datos
Ejecución Started 1 Tamaño de carga útil de entrada
Ejecución Completado (satisfactorio/fallido/detenido) 0 Tamaño de carga útil de salida
N.° de paso Reintento/satisfactorio/fallido 1 + N reintentos Se devolvió el tamaño de la carga útil de cada intento.
Wait Started 1 N/A
WaitForCondition Cada intento de sondeo 1 + N sondeos Se devolvió el tamaño de la carga útil de cada intento de sondeo.
Reintento a nivel de invocación Started 1 Carga útil del objeto de error

Operaciones de devolución de llamada

Las operaciones de devolución de llamada permiten que la función haga una pausa y espere a que los sistemas externos envíen información. Estas operaciones crean puntos de control cuando se crea la devolución de llamada y cuando se completa:

Operación Temporización de los puntos de control Número de operaciones Persistencia de datos
CreateCallback Started 1 N/A
Finalización de la devolución de llamada mediante una llamada a la API Completado 0 Carga útil de devolución de llamada
WaitForCallback Started 3 + N reintentos (contexto + devolución de llamada + paso) Cargas útiles devueltas por los intentos de paso del remitente, más dos copias de la carga útil de devolución de llamada

Operaciones compuestas

Las operaciones compuestas combinan múltiples operaciones duraderas para gestionar patrones de coordinación complejos, como la ejecución paralela, el procesamiento de matrices y los contextos anidados:

Operación Temporización de los puntos de control Número de operaciones Persistencia de datos
Parallel Started 1 + N ramificaciones (1 contexto principal + N contextos secundarios) Hasta dos copias del tamaño de la carga útil devuelta por cada ramificación, más los estados de cada ramificación
Asignación Started 1 + N ramificaciones (1 contexto principal + N contextos secundarios) Hasta dos copias del tamaño de la carga útil devuelta por cada iteración, más los estados de cada iteración
Ayudantes de promesas Completado 1 El tamaño de la carga útil devuelto según la promesa
RunInChildContext Satisfactorio/fallido 1 El tamaño de la carga útil devuelto desde el contexto secundario

En el caso de contextos, como los procedentes de runInChildContext o utilizados internamente por operaciones compuestas, los resultados de menos de 256 KB se controlan directamente mediante puntos de control. Los resultados más grandes no se almacenan, sino que se reconstruyen durante la reproducción mediante el reprocesamiento de las operaciones del contexto.