Información general

  • ¿Qué es AWS Step Functions?

    AWS Step Functions es un servicio completamente administrado que facilita la coordinación de componentes de aplicaciones y microservicios distribuidos usando flujos de trabajo visuales. La creación de aplicaciones a partir de componentes individuales que realizan cada uno una función discreta le permite escalar con facilidad y modificar las aplicaciones con rapidez. Step Functions es una manera fiable de coordinar los componentes y procesar las funciones de su aplicación. Step Functions proporciona una consola gráfica con la que ordenar y visualizar los componentes de su aplicación en varios pasos. De este modo, crear y ejecutar aplicaciones multipaso resulta sencillo. Step Functions activa y monitorea cada paso de manera automática; además, realiza reintentos cuando se producen errores, por lo que su aplicación se ejecuta en orden y según lo previsto. Step Functions registra el estado de cada paso, de manera que, cuando algo sale mal, puede diagnosticar y depurar los problemas con rapidez. Puede cambiar y agregar pasos sin escribir código, lo que le permite evolucionar la aplicación con facilidad e innovar con mayor velocidad.

  • ¿Qué beneficios tiene diseñar mi aplicación mediante la organización?

    El desglose de una aplicación en componentes (o pasos) de servicio garantiza que el error de un componente no desactive el sistema completo, que cada componente se escale de forma independiente, y que los componentes se puedan actualizar sin necesidad de volver a implementar el sistema completo tras cada modificación. La coordinación de componentes de servicio implica la administración de las dependencias de ejecución, la programación y la concurrencia de acuerdo con el flujo lógico de la aplicación. En una aplicación de este tipo, los desarrolladores pueden utilizar la organización del servicio para hacerlo y gestionar los errores.

  • ¿Cuáles son algunos de los casos de uso más comunes de AWS Step Functions?

    AWS Step Functions ayuda con cualquier problema informático o proceso de negocio que se puede subdividir en una serie de pasos. También es útil para crear flujos de trabajo integrales para administrar trabajos con interdependencias. Entre los casos de uso comunes se incluyen los siguientes:

    • Procesamiento de datos: consolide datos de múltiples bases de datos en informes unificados, mejore y reduzca grandes conjuntos de datos a formatos útiles, o coordine el análisis de varios pasos y los flujos de trabajo de aprendizaje automático.
    • Automatización de TI y DevOps: cree herramientas para la integración y la implementación continuas, o cree aplicaciones controladas por eventos que respondan automáticamente a los cambios en la infraestructura.
    • E-commerce: automatice procesos de negocio críticos, como el procesamiento de pedidos y el seguimiento de inventario.
    • Aplicaciones web: implemente procesos de registro de usuarios sólidos y autenticación de inicio de sesión.

    Para obtener más información, explore los casos de uso y los testimonios de los clientes de AWS Step Functions.

  • ¿Cómo funciona AWS Step Functions?

    Con el uso de AWS Step Functions, se definen máquinas de estado que describen el flujo de trabajo como una serie de pasos, sus relaciones y sus entradas y salidas. Las máquinas de estado contienen una serie de estados, cada uno de los cuales representa un paso individual en un diagrama de flujo de trabajo. Los estados pueden realizar el trabajo, tomar decisiones, pasar parámetros, iniciar la ejecución paralela, administrar los tiempos de espera o finalizar su flujo de trabajo con o sin éxito. La consola visual traza automáticamente cada estado en el orden de ejecución, lo que facilita el diseño de aplicaciones multipaso. La consola resalta el estado en tiempo real de cada paso y proporciona un historial detallado de cada ejecución. Para obtener más información, consulte Funcionamiento de Step Functions en la Guía para desarrolladores de AWS Step Functions.

  • ¿De qué forma se conecta AWS Step Functions a mis recursos?

    Puede configurar sus máquinas de estado para que realicen el trabajo mediante el uso de tareas de actividad y tareas de servicio. Las tareas de actividad le permiten asignar un paso específico en su flujo de trabajo al código que se ejecuta en otro lugar (conocido como trabajador de actividad). Un trabajador de actividad puede ser cualquier aplicación que pueda hacer una conexión HTTP, alojada en cualquier lugar. Por ejemplo, los trabajadores de actividad pueden ejecutarse en una instancia Amazon EC2, en un dispositivo móvil o en un servidor local. El trabajador de actividad realiza un sondeo de Step Functions para el trabajo, toma cualquier contenido de entrada de Step Functions, realiza el trabajo usando su código y devuelve los resultados. Dado que los trabajadores de actividad solicitan trabajo, es fácil utilizar a los trabajadores que se implementan detrás de un firewall.

    Las tareas de servicio le permiten conectar un paso de su flujo de trabajo a un servicio de AWS compatible. Step Functions envía las solicitudes a otros servicios a fin de que puedan realizar acciones para su flujo de trabajo, espera a que la tarea de servicio se complete y luego continúa con el siguiente paso.

    Una máquina de estado de AWS Step Functions puede contener combinaciones de tareas de actividad y de tareas de servicio. Las aplicaciones de AWS Step Functions también pueden combinar trabajadores de actividad que se ejecutan en un centro de datos con tareas de servicio que se ejecutan en la nube. Los trabajadores del centro de datos siguen ejecutándose como siempre, junto con cualquier tarea de servicio basada en la nube.

  • ¿Cómo puedo comenzar a utilizar AWS Step Functions?

    Existen varias maneras para comenzar a utilizar AWS Step Functions, entre ellas están las siguientes:

  • ¿Qué lenguaje utiliza AWS Step Functions?

    Las máquinas de estado de AWS Step Functions se definen en JSON mediante el uso del lenguaje declarativo Amazon States Language. Para crear un trabajador de actividad, puede utilizar cualquier lenguaje de programación, siempre que pueda comunicarse con AWS Step Functions utilizando las API de servicios web. Por comodidad, puede usar un AWS SDK en el lenguaje que elija. AWS Lambda es compatible con código escrito en Node.js (JavaScript), Python, Golang (Go) y C# (con el tiempo de ejecución de .NET Core y otros lenguajes). Para obtener más información sobre el modelo de programación de Lambda, consulte la Guía para desarrolladores de AWS Lambda.

Comparaciones

  • ¿Cuándo debería utilizar AWS Step Functions en lugar de Amazon SQS?

    Debe plantearse el uso de AWS Step Functions cuando necesite coordinar componentes de servicio en el desarrollo de aplicaciones auditables y muy escalables. Debe plantearse el uso de Amazon Simple Queue Service (Amazon SQS) cuando necesite una cola alojada de confianza y muy escalable para enviar, almacenar y recibir mensajes entre servicios. Step Functions lleva un seguimiento de todas las tareas y los eventos de una aplicación. En Amazon SQS debe implementar su propio sistema de seguimiento del nivel de la aplicación, especialmente si la aplicación utiliza varias colas. Las API de visibilidad y la consola de Step Functions proporcionan una vista centrada en la aplicación que permite buscar ejecuciones, ver los detalles de una ejecución y administrar ejecuciones. Con Amazon SQS, es necesario implementar esa funcionalidad adicional. Step Functions ofrece varias características para facilitar el desarrollo de aplicaciones, como la transmisión de datos entre tareas y la flexibilidad al distribuir tareas. Con Amazon SQS, tenemos que implementar alguna funcionalidad a nivel de aplicación. Mientras que puede utilizar Amazon SQS para crear flujos de trabajo básicos y coordinar su aplicación distribuida, Step Functions le proporciona esta facilidad de forma estándar, además de otras capacidades a nivel de aplicación.

  • ¿Cuándo debería utilizar AWS Step Functions en lugar de Amazon Simple Workflow Service (SWF)?

    Debería plantearse el uso de AWS Step Functions para todas las aplicaciones nuevas, ya que proporciona un enfoque más ágil y productivo para la coordinación de componentes de la aplicación mediante flujos de trabajo visuales. Si requiere que en sus procesos intervengan señales externas o si desea lanzar procesos secundarios que devuelvan un resultado a uno principal, debería tener en cuenta el uso de Amazon Simple Workflow Service (Amazon SWF). Con Amazon SWF, en vez de escribir máquinas de estados en JSON declarativo, escribe un programa Decider para separar los pasos de actividad de los pasos de decisión. Esto le aporta control absoluto sobre la lógica de organización, pero incrementa la complejidad de desarrollar aplicaciones. Puede escribir programas Decider en el lenguaje de programación que desee, o puede utilizar el marco Flow para usar construcciones de programación que estructuren interacciones asíncronas.

Integración

  • ¿Cómo se conecta y coordina AWS Step Functions con otros servicios de AWS?

    Los flujos de trabajo que se crean con AWS Step Functions pueden conectar y coordinar otros servicios de AWS mediante el uso de tareas de servicio. Puede, por ejemplo, realizar lo siguiente:

    • Invocar una función de AWS Lambda.
    • Ejecutar una tarea de AWS Fargate o de Amazon Elastic Container Service.
    • Obtener un elemento existente de una tabla Amazon DynamoDB o colocar un nuevo elemento en una tabla DynamoDB.
    • Enviar un trabajo de AWS Batch y esperar que se complete.
    • Publicar un mensaje en un tema de Amazon SNS.
    • Enviar un mensaje a una cola de Amazon SQS.
    • Iniciar una ejecución de trabajo de AWS Glue.
    • Crear un trabajo de Amazon SageMaker para entrenar a un modelo de aprendizaje automático o transformar por lotes a un conjunto de datos.

    Para obtener más información sobre el uso de Step Functions para conectarse a otros servicios de AWS, consulte la Guía para desarrolladores de AWS Step Functions. También puede crear tareas en sus máquinas de estado que ejecutan aplicaciones, consulte las preguntas frecuentes en la sección Información general: ¿De qué forma se conecta AWS Step Functions a mis recursos?.

  • ¿De qué manera funciona AWS Step Functions con Amazon API Gateway?

    Puede asociar las API de Step Functions con Amazon API Gateway para que estas API invoquen sus máquinas de estado cuando se envía una solicitud HTTPS a un método de API que usted defina. Puede utilizar una API de Amazon API Gateway para iniciar máquinas de estado de Step Functions que coordinan los componentes de una aplicación de backend distribuida e integrar tareas de actividad humana en los pasos de su aplicación, como solicitudes de aprobación y respuestas. También puede realizar llamadas asíncronas sin servidor a las API de servicios que use su aplicación. Para obtener más información, pruebe nuestro tutorial, Creación de una API de Step Functions mediante API Gateway.

  • ¿Cómo funciona el registro y el monitoreo para AWS Step Functions?

    AWS Step Functions envía métricas a Amazon CloudWatch y AWS CloudTrail para el monitoreo de aplicaciones. Amazon CloudWatch obtiene métricas, las analiza, configura alarmas y reacciona automáticamente a los cambios en AWS Step Functions. AWS CloudTrail captura todas las llamadas de la API para Step Functions como eventos, incluidas las llamadas desde la consola de Step Functions y desde las llamadas de código a las API de Step Functions. Step Functions también es compatible con las reglas administradas de Amazon CloudWatch Events para cada servicio integrado en su flujo de trabajo, y creará y administrará las reglas de CloudWatch Events en su cuenta de AWS según sea necesario. Para obtener más información, consulte Monitoreo y registro en la Guía para desarrolladores de AWS Step Functions.

Seguridad

Introducción a AWS Step Functions

Visite la página de introducción
¿Está listo para comenzar?
Iniciar sesión en la consola de AWS Step Functions
¿Tiene más preguntas?
Contacte con nosotros