AWS Step Functions ya se encuentra disponible de manera general

Pruebe AWS Step Functions de forma gratuita

La capa gratuita de AWS Step Functions incluye 4 000 transiciones de estado cada mes.  

Consulte los detalles de la capa gratuita de AWS »


P: ¿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 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 monitoriza cada paso de manera automática, y 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.

AWS Step Functions administra las operaciones y la infraestructura subyacente para ayudarle a garantizar que su aplicación se encuentre disponible a cualquier escala.

P: ¿Qué beneficios tiene diseñar mi aplicación utilizando la organización del servicio para coordinar tareas?

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.

P: ¿Qué tipos de casos de uso se pueden resolver con 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. Entre los casos de uso comunes se incluyen:

  • Procesamiento de datos y documentos – Consolide datos de varias bases de datos en informes unificados. Ajuste y reduzca conjuntos de datos grandes en formatos útiles.
  • Operaciones de desarrollo – Cree herramientas para la integración y la implementación continuas. Cree aplicaciones basadas en eventos que respondan automáticamente ante los cambios de 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.

P: ¿Cómo funciona AWS Step Functions?

Con AWS Step Functions, puede definir su aplicación como una máquina de estados, una serie de pasos que juntos capturan el comportamiento de la aplicación. Los estados en la máquina pueden ser tareas, pasos secuenciales, pasos paralelos, rutas de ramificación (elección) o temporizadores (espera). Las tareas son unidades de trabajo, y este trabajo lo pueden realizar funciones de AWS Lambda, instancias Amazon EC2 de cualquier tipo, contenedores o servidores on-premise – Se puede asignar una tarea a cualquier elemento que se pueda comunicar con el API de Step Functions. El código 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. Step Functions utiliza y escala los pasos de su aplicación y la informática subyacente para garantizar que su aplicación se ejecute de manera fiable en caso de aumento de la demanda.

P: ¿Cuándo debería utilizar AWS Step Functions en vez de Amazon SQS?

Debe plantearse el uso de AWS Step Functions cuando necesite coordinar componentes del servicio en el desarrollo de aplicaciones auditables y muy escalables. Debe plantearse el uso de Amazon Simple Queue Service (SQS) cuando necesite una cola alojada de confianza y muy escalable para el envío, almacenamiento y recepción de 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.

P: ¿Cuándo debería utilizar AWS Step Functions en vez de AWS Batch?

AWS Batch es un servicio que facilita la ejecución de flujos de trabajo de informática de lotes de cualquier escala en la nube de AWS. Debería utilizar AWS Step Functions cuando desee crear una aplicación distribuida como una serie de pasos, incluidos pasos secuenciales, paralelos o de lógica de ramificación (elecciones). Puede usar Batch para ejecutar trabajos en su aplicación y Step Functions para enviar varios trabajos por lotes con interdependencias. Utilice Batch cuando desea realizar la administración automática de infraestructura informática para escalar hasta la cantidad de procesamiento por lotes necesaria.

P: ¿Cuándo debería utilizar AWS Step Functions en vez 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 un principal, debería plantearse el uso de Amazon Simple Workflow Service (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.

P: ¿Qué sucederá con el servicio Amazon Simple Workflow Service (SWF) existente?

AWS seguirá proporcionando Amazon Simple Workflow (SWF) y ofreciendo soporte a todos los clientes de Amazon SWF.

P: ¿Cómo funciona AWS Step Functions con otros servicios de AWS?

AWS Step Functions trabaja con muchos servicios de AWS, incluidos AWS CloudFormation, AWS Lambda, Amazon EC2, Amazon EC2 Container Service (ECS), Amazon API Gateway, Amazon CloudWatch, AWS CloudTrail y Auto Scaling.

A continuación, se muestran algunas acciones que puede realizar con los diferentes servicios de AWS:

  • Lance varios recursos relacionados necesarios para las actividades y máquinas de estado de AWS Step Functions con AWS CloudFormation.
  • Implemente tareas con programas o funciones de Lambda que se ejecuten en EC2 o en contenedores de ECS.
  • Vincule sus API de Step Functions con métodos en una API de API Gateway.
  • Escale la flota de tareas de EC2 a las activadades de AWS Step Functions como respuesta a las métricas de CloudWatch.

P: ¿Cómo funciona AWS Step Functions con AWS Lambda?

Puede utilizar funciones de AWS Lambda para realizar tareas dentro de su máquina de estados. AWS Step Functions transfiere la entrada a la función de Lambda especificada y luego espera a que la función de Lambda devuelva un resultado. Con Lambda, puede crear tareas sin aprovisionar o administrar servidores, en todos los idiomas soportados por Lambda. Para obtener más información sobre el uso de Step Functions con Lambda, consulte nuestra documentación de Step Functions.

P: ¿Cómo funciona AWS Step Functions con Amazon EC2 y otros recursos informáticos?

Las tareas se encargan de realizar todo el trabajo en su máquina de estados. Una tarea puede ser una actividad, que puede estar formada por cualquier código en cualquier idioma. Las actividades se pueden alojar en Amazon EC2, Amazon ECS, dispositivos móviles... – Básicamente en cualquier equipo que se pueda comunicar con el API de AWS Step Functions. Las actividades aplican "long-poll" a Step Functions mediante llamadas al API para solicitar trabajo, recibir datos de entrada, realizar el trabajo y devolver un resultado.

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

Amazon API Gateway es un servicio completamente administrado que facilita a los desarrolladores la publicación, el mantenimiento, la monitorización y la protección de API a cualquier escala. Con tan solo unos clics en la consola de administración de AWS, puede vincular sus API de Step Functions con métodos en su API de API Gateway para que, cuando se envíe una solicitud HTTPS a un método API que usted defina, API Gateway invoque sus acciones de API de Step Functions.

Puede usar una API de Amazon API Gateway para iniciar las máquinas de estado de Step Functions que coordinen los componentes de una aplicación backend distribuida. También puede integrar tareas de actividades humanas en los pasos de su aplicación, como solicitudes de aprobación y respuestas. Inclusive, puede realizar llamadas asíncronas sin servidor a las API de servicios que use su aplicación.

Amazon API Gateway administra todas las tareas relacionadas con la aceptación y el procesamiento de cientos de miles de llamadas simultáneas al API, entre ellas, la administración del tráfico, el control del acceso y la autorización, la monitorización y la administración de las versiones del API.

P: ¿De qué manera funciona AWS Step Functions con Amazon CloudWatch?

Amazon CloudWatch es un servicio de monitorización de los servicios y las aplicaciones de AWS que se ejecutan en AWS. Amazon CloudWatch obtiene métricas, las analiza, configura alarmas y reaciona automáticamente a los cambios en AWS Step Functions.

A continuación, se muestran algunas acciones que puede realizar con Amazon CloudWatch y AWS Step Functions:

  • Monitorice las métricas del flujo de trabajo de Step Functions
  • Lance los flujos de trabajo de Step Functions como respuesta a CloudWatch Events.
  • Genere alarmas que se activen cuando Step Functions sobrepase ciertos umbrales en las métricas.
  • Programe los flujos de trabajo de Step Functions en intervalos de tiempo de, como mínimo, un minuto con CloudWatch Events.

P: ¿Puedo usar AWS Step Functions con mis recursos on-premise?

Sí. Las aplicaciones de AWS Step Functions pueden combinar empleados que se ejecutan en el centro de datos con empleados que se ejecutan en la nube. Los empleados del centro de datos siguen ejecutándose como siempre, junto con los empleados en la nube.


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

Para comenzar a utilizar AWS Step Functions, vaya a la página de detalles de AWS Step Functions y haga clic en el botón "Comience de forma gratuita". Si no tiene una cuenta de Amazon Web Services, se le pedirá que la cree. Tras la inscripción, puede ejecutar una guía paso a paso de muestra en la consola de AWS Step Functions que le orienta sobre los pasos necesarios para crear una máquina de estados. Vaya a AWS Step Functions desde la consola de administración de AWS. Después seleccione el plano "Hola Mundo" y agregue una función de Lambda "HelloWorld". Ya puede obtener una vista previa y ejecutar su máquina de estados. Para comenzar a utilizar AWS Step Functions en sus aplicaciones, consulte la documentación de AWS Step Functions.

P: ¿Qué lenguaje utiliza AWS Step Functions?

Puede utilizar cualquier lenguaje de programación para escribir una actividad, 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, Java (compatible con Java 8) y C# (usando el runtime .NET Core). Las máquinas de estado se definen en JSON utilizando Amazon States Language.


P: ¿Cómo puedo autenticar usuarios?

AWS Step Functions está integrado con AWS Identity and Access Management (IAM). Las políticas de IAM se pueden utilizar para controlar el acceso a las API de Step Functions.


P: ¿Qué sistema de cargo se aplica por el uso de AWS Step Functions?

Con AWS Step Functions solo paga por la transacción desde el paso uno de su flujo de trabajo de aplicaciones al siguiente, lo que se denomina una transición de estado. La facturación se mide por transición de estado, independientemente del tiempo que persista cada estado (hasta un año), para ofrecer un servicio rentable y fácil de escalar automáticamente desde unas pocas ejecuciones al día hasta decenas de millones al mes. Consulte la página de precios de AWS Step Functions para obtener más detalles.