Por supuesto, también puede usar las transmisiones de DynamodB para activar los procesos aguas abajo y las funciones de AWS Lambda. Lambda, por definición, es un servicio de cómputo sin servidor que ejecuta su código en respuesta a los eventos y administra automáticamente los recursos de cómputo para usted.
Puede usar Lambda para escribir el código en el nodo.JS, Python, Java o C# para procesar los registros de transmisión y tomar las medidas apropiadas. El principal beneficio de integrar las transmisiones de DynamodB con Lambda es que Lambda le permite ejecutar los servicios respaldados o los códigos de aplicación sin la necesidad de administración.
Cómo usar las transmisiones AWS Dynamodb con Lambda
Si bien es posible crear una función Lambda que consuma los eventos y ocurrencias de una secuencia de DynamodB, el proceso puede ser bastante importante, particularmente en su primer intento. Los siguientes pasos ayudarán:
Paso 1: asegúrese de que su sistema cumpla con los requisitos previos
Este procedimiento solo tendrá éxito si conoce las operaciones y procesos básicos de Lambda. Por lo tanto, este debería ser el primero para garantizar que su comprensión de Lambda esté por encima del promedio.
El segundo requisito previo que vale la pena considerar es confirmar la versión AWS de su sistema. Puede usar el siguiente comando:
AWS -versiónEl resultado para el comando proporcionado debe verse así:
AWS-Cli/2.X.x python/3.X.x Linux/4.X.X-XXX-STD Botocore/2.X.XLa respuesta de muestra dada contiene la versión instalada del AWS CLI (AWS-Cli/2.X.X), la versión de Python (Python/3.X.X) y el sistema operativo (Linux/4.X.X-XXX-STD). La parte final de la respuesta define la versión de la biblioteca de Botocore en la que se ejecuta su AWS CLI (Botocore/2.X.X).
Por lo tanto, terminará con algo como esto:
Paso 2: crear un rol de ejecución
El siguiente paso es crear un papel de ejecución en AWS CLI. Un rol de ejecución es un rol de gestión de identidad y acceso de AWS (IAM) asumido por un servicio de AWS para realizar las tareas en su nombre. Le da acceso a los recursos de AWS que necesitará en el camino.
Puede crear un rol usando el siguiente comando:
AWS IAM CREATE-ROL \El comando anterior es un comando AWS CLI para crear un rol. También puede usar la consola de administración de Amazon para crear un rol. Una vez que esté en la consola IAM, abra el Roles página y haga clic en el Crear rol botón.
Proceda a ingresar lo siguiente:
También puede usar Python instalando primero el AWS SDK para Python:
PIP Instalar Boto3Paso 3: Habilite las transmisiones de DynamodB en su mesa
Necesita habilitar las transmisiones de DynamodB en su mesa. Para esta ilustración, usamos el Boto3, AWS SDK para Python. El siguiente comando ayudará:
importar boto3Este código habilita la secuencia de DynamodB en la tabla "mytable" que transmite las imágenes nuevas y antiguas de los elementos tan pronto como ocurra cualquier cambio. Puede elegir transmitir solo las nuevas imágenes tan pronto como el StreamViewType a "New_Image".
En particular, ejecutar este código solo puede habilitar las transmisiones en sus tablas después de un tiempo. En cambio, el proceso puede llevar algún tiempo. Puede usar el método DRUCT_TABLE para verificar el estado de la transmisión.
Paso 4: crea la función Lambda
El siguiente paso es crear una función lambda que desencadena la transmisión Dynamodb. Los siguientes pasos deberían ayudar:
Eso es todo lo que sucede al crear una función lambda! Su función ahora se activa siempre que haya actualizaciones en la tabla DynamodB especificada.
Aquí hay un ejemplo de una función simple de Python que la secuencia Dynamodb puede activar:
def lambda_handler (evento, contexto):Esta función itera a través de los registros en el objeto de evento e imprime la nueva imagen del elemento en la tabla DynamodB que desencadena la función.
Paso 5: Pruebe la función Lambda
Para probar una función lambda que puede activar una secuencia de DynamodB, puede usar el boto3 biblioteca para acceder a la API Dynamodb y la invocar método del Lambda cliente para activar la función.
Aquí hay un ejemplo sobre cómo hacerlo:
importar boto3Este código primero inserta un elemento en el mi mesa mesa y luego desencadena el MyFunction Función lambda enviando una carga útil de eventos de muestra a la función utilizando el invocar método. La carga útil del evento simula un evento de transmisión Dynamodb que incluye la nueva imagen del elemento que se acaba de insertar.
Luego puede verificar los registros de la función Lambda para ver si activó y procesó con éxito los datos del evento.
Conclusión
Es vital tener en cuenta que puede invocar varias veces para el mismo registro de transmisión que una secuencia de DynamodB puede activar una función lambda. La razón principal detrás de esto es que los registros de transmisión son eventualmente consistentes, y es posible procesar el mismo registro varias veces por la función Lambda. Es crucial diseñar su función Lambda para manejar este caso correctamente.