Procesamiento de mensajes de alto volumen desde Amazon SQS utilizando flujos de trabajo rápidos de Step Functions
En este proyecto de muestra se ilustra cómo utilizar un flujo de trabajo rápidos de AWS Step Functions para procesar los mensajes o los datos de un origen de eventos de un volumen elevado, como Amazon Simple Queue Service (Amazon SQS). Dado que los flujos de trabajo rápidos se pueden iniciar a una velocidad muy elevada, son ideales para las cargas de trabajo de datos de streaming o procesamiento de eventos de un volumen elevado.
A continuación se muestran dos métodos utilizados con frecuencia para ejecutar la máquina de estado desde un origen de eventos:
-
Configure una regla de eventos de CloudWatch para iniciar la ejecución de una máquina de estado siempre que el origen de eventos emita un evento. Para obtener más información, consulte Creación de una regla de eventos de CloudWatch que activa un evento.
-
Asigne el origen de eventos a una función Lambda y escriba el código de función para ejecutar la máquina de estado. La función de AWS Lambda se invoca cada vez que el origen de eventos emite un evento y a su vez inicia la ejecución de una máquina de estado. Para obtener más información, consulte Uso de AWS Lambda con Amazon SQS.
Este proyecto de ejemplo utiliza el segundo método para iniciar una ejecución cada vez que la cola de Amazon SQS envía un mensaje. Puede usar una configuración similar para activar la ejecución de flujos de trabajo rápidos desde otros orígenes de eventos, como Amazon Simple Storage Service (Amazon S3), Amazon DynamoDB y Amazon Kinesis.
Para obtener más información acerca de los flujos de trabajo rápidos y las integraciones de servicios de Step Functions, consulte los siguientes temas:
Paso 1: Crear la máquina de estado
-
Abra la consola de Step Functions
y seleccione Crear máquina de estado. -
Seleccione Crear a partir de una plantilla y busque la plantilla de inicio relacionada. Elija Siguiente para continuar.
-
Elija cómo usar la plantilla:
-
Realizar una demostración: crea una máquina de estado de solo lectura. Tras la revisión, puede crear el flujo de trabajo y todos los recursos relacionados.
-
Crear a partir de ella: proporciona una definición de flujo de trabajo editable que puede revisar, personalizar e implementar con sus propios recursos. (Los recursos relacionados, como las funciones o las colas, no se crearán automáticamente).
-
-
Elija Utilizar plantilla para continuar con la selección.
nota
Se aplican cargos estándar por los servicios implementados en su cuenta.
Paso 2: Activar la ejecución de la máquina de estado
-
Abra la consola de Amazon SQS
. -
Seleccione la cola que ha creado el proyecto de ejemplo.
El nombre será similar a Example-SQSQueue-wJalrXUtnFEMI.
-
En la lista Acciones de cola, seleccione Enviar un mensaje.
-
Utilice el botón de copiar para copiar el siguiente mensaje y, en la ventana Enviar un mensaje, escríbalo y seleccione el botón Enviar mensaje.
nota
En este mensaje de ejemplo, la línea de
input:tiene un formato con saltos de línea para ajustarse a la página. Utilice el botón de copiar o asegúrese de que se introduzca como una línea única sin saltos de línea.{ "input": "QW5kIGxpa2UgdGhlIGJhc2VsZXNzIGZhYnJpYyBvZiB0aGlzIHZpc2lvbiwgVGhlIGNsb3VkLWNhcHBlZCB0b3dlcnMsIHRoZSBnb3JnZW91cyBwYWxhY2VzLCBUaGUgc29sZW1uIHRlbXBsZXMsIHRoZSBncmVhdCBnbG9iZSBpdHNlbGbigJQgWWVhLCBhbGwgd2hpY2ggaXQgaW5oZXJpdOKAlHNoYWxsIGRpc3NvbHZlLCBBbmQgbGlrZSB0aGlzIGluc3Vic3RhbnRpYWwgcGFnZWFudCBmYWRlZCwgTGVhdmUgbm90IGEgcmFjayBiZWhpbmQuIFdlIGFyZSBzdWNoIHN0dWZmIEFzIGRyZWFtcyBhcmUgbWFkZSBvbiwgYW5kIG91ciBsaXR0bGUgbGlmZSBJcyByb3VuZGVkIHdpdGggYSBzbGVlcC4gU2lyLCBJIGFtIHZleGVkLiBCZWFyIHdpdGggbXkgd2Vha25lc3MuIE15IG9sZCBicmFpbiBpcyB0cm91YmxlZC4gQmUgbm90IGRpc3R1cmJlZCB3aXRoIG15IGluZmlybWl0eS4gSWYgeW91IGJlIHBsZWFzZWQsIHJldGlyZSBpbnRvIG15IGNlbGwgQW5kIHRoZXJlIHJlcG9zZS4gQSB0dXJuIG9yIHR3byBJ4oCZbGwgd2FsayBUbyBzdGlsbCBteSBiZWF0aW5nIG1pbmQu" } -
Seleccione Cerrar.
-
Abra la consola de Step Functions.
-
Vaya al grupo de registro Registros de Amazon CloudWatch
e inspeccione los registros. El nombre del grupo de registros será similar a example-ExpressLogGroup-wJalrXUtnFEMI.