Procese un CSV archivo de Amazon S3 mediante un mapa distribuido - AWS Step Functions

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Procese un CSV archivo de Amazon S3 mediante un mapa distribuido

Este proyecto de ejemplo demuestra cómo se puede utilizar el estado del mapa distribuido para iterar más de 10 000 filas de un CSV archivo que se genera mediante un Lambda función. El CSV archivo contiene la información de envío de los pedidos de los clientes y se almacena en un depósito de Amazon S3. El mapa distribuido recorre en iteraciones un lote de 10 filas en el CSV archivo para el análisis de los datos.

El mapa distribuido contiene un Lambda función para detectar cualquier pedido retrasado. Distributed Map también contiene un Inline Map para procesar los pedidos retrasados en un lote y devolver estos pedidos retrasados en una matriz. Por cada pedido retrasado, el mapa en línea envía un mensaje a un Amazon SQS queue. Por último, este proyecto de ejemplo almacena los resultados de Map Run en otro bucket de Amazon S3 de su Cuenta de AWS.

Con Distributed Map, puede ejecutar hasta 10 000 ejecuciones paralelas de flujos de trabajo secundarios a la vez. En este proyecto de muestra, la simultaneidad máxima de Distributed Map se establece en 1000, lo que la limita a 1000 ejecuciones paralelas de flujos de trabajo secundarios.

En este proyecto de ejemplo se crea la máquina de estados, la máquina de apoyo AWS recursos y configura los IAM permisos relacionados. Explore este proyecto de muestra para aprender acerca del uso de Distributed Map para orquestar cargas de trabajo paralelas a gran escala o úselo como punto de partida para sus propios proyectos.

AWS CloudFormation plantilla y recursos adicionales

Utiliza una CloudFormation plantilla para implementar este proyecto de ejemplo. Esta plantilla crea los siguientes recursos en su Cuenta de AWS:

  • Una máquina de estado de Step Functions.

  • Rol de ejecución para la máquina de estado. Esta función otorga los permisos que su máquina de estado necesita para acceder a otras Servicios de AWS y recursos como la acción Invoke de la función Lambda.

  • Una función Lambda denominada CSVGeneratorFunction que genera un CSV archivo que contiene los detalles del pedido del cliente.

  • Función de ejecución de la función Lambda CSV generadora. Este rol otorga a la función permiso para acceder a otros Servicios de AWS.

  • Un depósito de entrada de Amazon S3 para almacenar el CSV archivo generado.

  • Función Lambda de detección de pedidos retrasados que analiza los datos del CSV archivo y detecta cualquier pedido retrasado.

  • Un rol de ejecución para la función de Lambda de pedidos retrasados. Este rol otorga a la función permiso para acceder a otros Servicios de AWS.

  • Un bucket de salida de Amazon S3 para almacenar los resultados del análisis de los pedidos de los clientes.

  • Una SQS cola de Amazon a la que Step Functions envía mensajes por cada pedido retrasado. Estos mensajes contienen los datos IDs de los clientes y sus pedidos.

  • Un grupo de CloudWatch registros que almacena información relacionada con el historial de ejecución de la máquina de estados.

importante

Se aplican cargos estándar por cada servicio.

Paso 1: Crear la máquina de estado y aprovisionar recursos

  1. Abra la consola de Step Functions y seleccione Crear máquina de estado.

  2. Escriba Distributed Map to process a CSV file in S3 en el cuadro de búsqueda y, a continuación, elija Distributed Map para procesar un CSV archivo en S3 a partir de los resultados de búsqueda que se devuelvan.

  3. Elija Siguiente para continuar.

  4. Elija Ejecutar una demostración para crear un ready-to-deploy flujo de trabajo y de solo lectura, o elija Crear a partir de ella para crear una definición de máquina de estados editable sobre la que pueda crear e implementar posteriormente.

    Para obtener información sobre los recursos que se crearán para este proyecto de muestra, consulte AWS CloudFormation plantilla y recursos adicionales.

    La siguiente imagen muestra el gráfico del flujo de trabajo del mapa distribuido para procesar un CSV archivo en un proyecto de ejemplo de S3:

    Gráfico de flujo de trabajo del mapa distribuido para procesar un CSV archivo en un proyecto de ejemplo de S3.
  5. Elija Utilizar plantilla para continuar con la selección.

Los siguientes pasos dependen de la elección anterior:

  1. Realice una demostración: puede revisar la máquina de estados antes de crear un proyecto de solo lectura con los recursos desplegados por AWS CloudFormation a tu Cuenta de AWS.

    Puede ver la definición de la máquina de estados y, cuando esté listo, elija Implementar y ejecutar para implementar el proyecto y crear los recursos.

    La creación de recursos y permisos puede tardar hasta 10 minutos en implementarse. Puede utilizar el enlace Stack ID para supervisar el progreso en AWS CloudFormation.

    Una vez completada la implementación, deberías ver tu nueva máquina de estados en la consola.

  2. Aproveche esta información: puede revisar y editar la definición del flujo de trabajo. Es posible que tengas que establecer valores para los marcadores de posición en el proyecto de ejemplo antes de intentar ejecutar tu flujo de trabajo personalizado.

nota

Es posible que se apliquen cargos estándar por los servicios implementados en tu cuenta.

Paso 2: Ejecutar la máquina de estado

Una vez aprovisionados e implementados todos los recursos, puede ejecutar la máquina de estado.

  1. En la página Máquina de estado, elija su proyecto de muestra.

  2. En la página del proyecto de muestra, seleccione Iniciar ejecución.

  3. En el cuadro de diálogo Iniciar ejecución, haga lo siguiente:

    1. (Opcional) Introduce los valores de entrada en el JSON formato para ejecutar tu proyecto de muestra.

      Si se ha seleccionado Ejecutar una demostración, no es necesario proporcionar ninguna entrada de ejecución.

      nota

      Si el proyecto de demostración que implementó contiene datos de entrada de ejecución rellenados previamente, utilice esa entrada para ejecutar la máquina de estado.

    2. Seleccione Iniciar ejecución.

    3. (Opcional) La consola de Step Functions le dirige a una página cuyo título es su ID de ejecución. Esta página se conoce como Detalles de la ejecución. En esta página, puede revisar los resultados de la ejecución a medida que avanza la ejecución o una vez finalizada.

      Una vez que se complete la ejecución, elija los estados individuales en la Vista de gráfico y, a continuación, elija las pestañas individuales del panel Detalles del paso para ver los detalles de cada estado, incluidas la entrada, la salida y la definición, respectivamente.

    4. (Opcional) Revise los resultados de ejecución exportados al bucket de Amazon S3. Estos resultados incluyen datos, como la entrada y salida de la ejecuciónARN, y el estado de la ejecución. Para obtener más información, consulte ResultWriter (Mapa).