Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Desarrollo de flujos de trabajo con Step Functions

Modo de enfoque
Desarrollo de flujos de trabajo con Step Functions - 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.

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.

Recomendamos empezar a crear flujos de trabajo en la consola de Step Functions y el editor visual de Workflow Studio. Puede empezar desde un lienzo en blanco o elegir plantillas de inicio para situaciones habituales.

La creación de sus flujos de trabajo requiere las siguientes tareas:

  • Definición de su flujo de trabajo

  • Ejecución y depuración del flujo de trabajo

  • Implementación del flujo de trabajo

Defina una máquina de estado en Amazon States Language. Puede crear manualmente sus definiciones de Amazon States Language, pero Workflow Studio aparecerá en los tutoriales. Con Workflow Studio, puede definir la definición de su máquina, visualizar y editar los pasos, ejecutar y depurar su flujo de trabajo y ver los resultados desde la consola de Step Functions.

También puedes usar muchas funciones de Step Functions desde AWS Command Line Interface (AWS CLI). Por ejemplo, puede crear una máquina de estado y crear un listado de las máquinas de estado existentes. Puedes usar los comandos de Step Functions AWS CLI para iniciar y gestionar las ejecuciones, realizar sondeos de actividades, registrar los latidos de las tareas y mucho más. Para obtener una lista completa de los comandos de Step Functions, las descripciones de los argumentos disponibles y ejemplos sobre su uso, consulte la Referencia de comandos de AWS CLI . AWS CLI Referencia de comandos

AWS CLI los comandos siguen de cerca el idioma de Amazon States, por lo que puedes usarlos AWS CLI para obtener información sobre las acciones de la API Step Functions. También puede utilizar sus conocimientos existentes sobre las API para crear un prototipo de código o realizar acciones de Step Functions desde la línea de comandos.

Validación de definiciones de máquina de estado

Puede usar la API para validar las máquinas de estado y detectar posibles problemas antes de crear su flujo de trabajo.

Para obtener más información sobre la validación de los flujos de trabajo, consulte la referencia ValidateStateMachineDefinitionde la API de Step Functions.

Para empezar con una configuración mínima, puede seguir el tutorial Creación de una máquina de estado de Lambda, que muestra cómo definir un flujo de trabajo con un solo paso que llama a una función de Lambda, luego ejecutar el flujo de trabajo y ver los resultados.

Definición de su flujo de trabajo

El primer paso para desarrollar su flujo de trabajo es definir los pasos en Amazon States Language. Según sus preferencias y su herramienta, puede definir sus máquinas de estado de Step Functions en JSON, YAML o como una definición en cadena de Amazon States Language (ASL).

La siguiente tabla muestra la compatibilidad del formato de definición basado en ASL según la herramienta.

AWS Herramienta Formatos admitidos
Consola de Step Functions JSON
API de servicio HTTPS ASL representado en forma de cadena
AWS CLI ASL representado en forma de cadena
Step Functions Local ASL representado en forma de cadena
AWS Toolkit for Visual Studio Code JSON, YAML
AWS SAM JSON, YAML
AWS CloudFormation JSON, YAML, ASL representado en forma de cadena

Los comentarios de una sola línea en YAML dentro de la definición de la máquina de estado de una plantilla no se incluirán en la definición del recurso creado. Si necesita mantener un comentario, debe usar la propiedad Comment dentro de la definición de la máquina de estado. Para obtener más información, consulte Estructura de las máquinas de estado.

Con AWS CloudFormation y AWS SAM, puede cargar sus definiciones de máquina de estados a Amazon S3 (formato JSON o YAML) y proporcionar la ubicación de Amazon S3 de la definición en la plantilla. Para obtener más información, consulte la página de AWS::StepFunctions::StateMachine ubicación de S3.

Las siguientes AWS CloudFormation plantillas de ejemplo muestran cómo puede proporcionar la misma definición de máquina de estados utilizando diferentes formatos de entrada.

JSON with Definition
{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "AWS Step Functions sample template.", "Resources": { "MyStateMachine": { "Type": "AWS::StepFunctions::StateMachine", "Properties": { "RoleArn": { "Fn::GetAtt": [ "StateMachineRole", "Arn" ] }, "TracingConfiguration": { "Enabled": true }, "Definition": { "StartAt": "HelloWorld", "States": { "HelloWorld": { "Type": "Pass", "End": true } } } } }, "StateMachineRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": [ "sts:AssumeRole" ], "Effect": "Allow", "Principal": { "Service": [ "states.amazonaws.com" ] } } ] }, "ManagedPolicyArns": [], "Policies": [ { "PolicyName": "StateMachineRolePolicy", "PolicyDocument": { "Statement": [ { "Action": [ "lambda:InvokeFunction" ], "Resource": "*", "Effect": "Allow" } ] } } ] } } }, "Outputs": { "StateMachineArn": { "Value": { "Ref": "MyStateMachine" } } } }
JSON with DefinitionString
{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "AWS Step Functions sample template.", "Resources": { "MyStateMachine": { "Type": "AWS::StepFunctions::StateMachine", "Properties": { "RoleArn": { "Fn::GetAtt": [ "StateMachineRole", "Arn" ] }, "TracingConfiguration": { "Enabled": true }, "DefinitionString": "{\n \"StartAt\": \"HelloWorld\",\n \"States\": {\n \"HelloWorld\": {\n \"Type\": \"Pass\",\n \"End\": true\n }\n }\n}" } }, "StateMachineRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": [ "sts:AssumeRole" ], "Effect": "Allow", "Principal": { "Service": [ "states.amazonaws.com" ] } } ] }, "ManagedPolicyArns": [], "Policies": [ { "PolicyName": "StateMachineRolePolicy", "PolicyDocument": { "Statement": [ { "Action": [ "lambda:InvokeFunction" ], "Resource": "*", "Effect": "Allow" } ] } } ] } } }, "Outputs": { "StateMachineArn": { "Value": { "Ref": "MyStateMachine" } } } }
YAML with Definition
AWSTemplateFormatVersion: 2010-09-09 Description: AWS Step Functions sample template. Resources: MyStateMachine: Type: 'AWS::StepFunctions::StateMachine' Properties: RoleArn: !GetAtt - StateMachineRole - Arn TracingConfiguration: Enabled: true Definition: # This is a YAML comment. This will not be preserved in the state machine resource's definition. Comment: This is an ASL comment. This will be preserved in the state machine resource's definition. StartAt: HelloWorld States: HelloWorld: Type: Pass End: true StateMachineRole: Type: 'AWS::IAM::Role' Properties: AssumeRolePolicyDocument: Version: 2012-10-17 Statement: - Action: - 'sts:AssumeRole' Effect: Allow Principal: Service: - states.amazonaws.com ManagedPolicyArns: [] Policies: - PolicyName: StateMachineRolePolicy PolicyDocument: Statement: - Action: - 'lambda:InvokeFunction' Resource: "*" Effect: Allow Outputs: StateMachineArn: Value: Ref: MyStateMachine
YAML with DefinitionString
AWSTemplateFormatVersion: 2010-09-09 Description: AWS Step Functions sample template. Resources: MyStateMachine: Type: 'AWS::StepFunctions::StateMachine' Properties: RoleArn: !GetAtt - StateMachineRole - Arn TracingConfiguration: Enabled: true DefinitionString: | { "StartAt": "HelloWorld", "States": { "HelloWorld": { "Type": "Pass", "End": true } } } StateMachineRole: Type: 'AWS::IAM::Role' Properties: AssumeRolePolicyDocument: Version: 2012-10-17 Statement: - Action: - 'sts:AssumeRole' Effect: Allow Principal: Service: - states.amazonaws.com ManagedPolicyArns: [] Policies: - PolicyName: StateMachineRolePolicy PolicyDocument: Statement: - Action: - 'lambda:InvokeFunction' Resource: "*" Effect: Allow Outputs: StateMachineArn: Value: Ref: MyStateMachinele
{ "AWSTemplateFormatVersion": "2010-09-09", "Description": "AWS Step Functions sample template.", "Resources": { "MyStateMachine": { "Type": "AWS::StepFunctions::StateMachine", "Properties": { "RoleArn": { "Fn::GetAtt": [ "StateMachineRole", "Arn" ] }, "TracingConfiguration": { "Enabled": true }, "Definition": { "StartAt": "HelloWorld", "States": { "HelloWorld": { "Type": "Pass", "End": true } } } } }, "StateMachineRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Action": [ "sts:AssumeRole" ], "Effect": "Allow", "Principal": { "Service": [ "states.amazonaws.com" ] } } ] }, "ManagedPolicyArns": [], "Policies": [ { "PolicyName": "StateMachineRolePolicy", "PolicyDocument": { "Statement": [ { "Action": [ "lambda:InvokeFunction" ], "Resource": "*", "Effect": "Allow" } ] } } ] } } }, "Outputs": { "StateMachineArn": { "Value": { "Ref": "MyStateMachine" } } } }
Desarrolle flujos de trabajo con AWS SDKs

Step Functions es compatible con Java, .NET, Ruby, PHP, Python (Boto 3) JavaScript, Go y C++. AWS SDKs Estas SDKs proporcionan una forma cómoda de utilizar las acciones de la API HTTPS de Step Functions en varios lenguajes de programación. Puede desarrollar máquinas de estado, actividades o iniciadores de máquinas de estado con las acciones de la API expuestas por estas bibliotecas de SDK. También puede obtener acceso a las operaciones de visibilidad a través de estas bibliotecas para desarrollar sus propias herramientas de monitorización e informes de Step Functions. Consulte la documentación de referencia para ver la versión actual AWS SDKs y las Herramientas para Amazon Web Services.

Desarrollo de flujos de trabajo a través de solicitudes HTTPS

Step Functions proporciona operaciones de servicio a las que se puede tener acceso a través de solicitudes HTTPS. Puede utilizar estas operaciones para comunicarse directamente con Step Functions desde sus propias bibliotecas. Puede desarrollar máquinas de estado, procesos de trabajo o iniciadores de máquinas de estado mediante las acciones de la API de servicio. También puede obtener acceso a las operaciones de visibilidad a través de las acciones de la API para desarrollar sus propias herramientas de monitorización e informes. Para obtener información detallada, consulte la Referencia de la API de AWS Step Functions.

Desarrolle flujos de trabajo con el SDK AWS Step Functions de ciencia de datos

Los científicos de datos pueden crear flujos de trabajo que procesen y publiquen modelos de aprendizaje automático mediante SageMaker IA y Step Functions. También puede crear flujos de trabajo de machine learning de múltiples pasos en Python que orquesten la infraestructura de AWS a gran escala. El SDK AWS Step Functions de Data Science proporciona una API de Python que puede crear e invocar flujos de trabajo de Step Functions. Puede administrar y ejecutar estos flujos de trabajo directamente en Python, así como en cuadernos de Jupyter. Para obtener más información, consulta: el proyecto de ciencia de datos de AWS Step Functions en Github, la documentación del SDK de ciencia de datos y ejemplos de cuadernos de Jupyter y ejemplos de SageMaker IA en. GitHub

Ejecución y depuración de flujos de trabajo

Puede iniciar los flujos de trabajo de varias formas, por ejemplo, desde la consola, una llamada a la API (por ejemplo, desde una función de Lambda), desde Amazon EventBridge y EventBridge Scheduler, desde otra máquina de estados de Step Functions. Los flujos de trabajo en ejecución pueden conectarse a servicios de terceros y utilizar AWS SDKs y manipular datos mientras se ejecutan. Existen varias herramientas para ejecutar y depurar los pasos de ejecución y los datos que fluyen por la máquina de estado. En las siguientes secciones, se proporciona más información sobre la ejecución y depuración de flujos de trabajo.

Para obtener más información sobre las formas de iniciar las ejecuciones de máquinas de estado, consulte Inicio de ejecuciones de máquinas de estado en Step Functions.

Elija un punto de conexión para ejecutar sus flujos de trabajo

Para reducir la latencia y almacenar los datos en una ubicación que cumpla con sus requisitos, Step Functions proporciona puntos de conexión en diferentes AWS regiones. Cada punto de conexión de Step Functions es totalmente independiente. Una máquina de estado o una actividad solo existe en la región en la que se creó. Ninguna de las máquinas de estado y las actividades que se crean en una región comparte datos ni atributos con las que se crean en otra región. Por ejemplo, puede registrar una máquina de estado con el nombre STATES-Flows-1 en dos regiones diferentes. La máquina de estado STATES-Flows-1 de una región no compartirá datos ni atributos con la máquina de estado STATES-Flow-1 de la otra región. Para ver una lista de los puntos de conexión de Step Functions, consulte Regiones y puntos de conexión de AWS Step Functions en la Referencia general de AWS.

Control del flujo de datos en sus flujos de trabajo

Puede usar el simulador de flujo de datos en la consola de Step Functions para visualizar cómo fluye la información de un estado a otro y comprender cómo filtrar y manipular datos. Con el simulador de flujo de datos, puede simular cada uno de los campos que Step Functions utiliza para procesar datos, como InputPath, Parameters, ResultSelector, OutputPath y ResultPath. Para obtener más información, consulte Simulador de flujo de datos (no compatible).

Versión de desarrollo local de Step Functions

Para las pruebas y el desarrollo, puede instalar y ejecutar Step Functions en su equipo local. La versión local de Step Functions puede invocar AWS Lambda funciones, tanto en AWS ejecución local como cuando se ejecuta localmente. También puede coordinar otros AWS servicios compatibles. Para obtener más información, consulte Probar máquinas de estado con Step Functions Local (no compatible).

Desarrollo local y remoto con VS Code

También puede utilizar VS Code para interactuar con máquinas de estado remotas y desarrollar máquinas de estado localmente. Puede crear o actualizar máquinas de estado, mostrar las máquinas de estado existentes y ejecutar o descargar una máquina de estado. VS Code también le permite crear nuevas máquinas de estado a partir de plantillas, ver una visualización de su máquina de estado y proporciona fragmentos de código, finalización de código y validación de código. Para obtener más información, consulte la Guía AWS Toolkit for Visual Studio Code del usuario

Implementación de flujos de trabajo

Una vez que haya definido y depurado los flujos de trabajo, es probable que desee implementarlos mediante marcos de infraestructura como código. Puede optar por implementar sus máquinas de estado mediante una variedad de opciones de iAC, que incluyen: AWS Serverless Application Model, AWS CloudFormation AWS CDK, y Terraform.

AWS Serverless Application Model

Puede usarlo AWS Serverless Application Model con Step Functions para crear flujos de trabajo e implementar la infraestructura que necesita, incluidas las funciones APIs y eventos de Lambda, para crear aplicaciones sin servidor. También puede utilizar la AWS SAM CLI junto con la AWS Toolkit for Visual Studio Code como parte de una experiencia integrada.

Para obtener más información, consulte Uso AWS SAM para crear flujos de trabajo de Step Functions.

AWS CloudFormation

Puede usar las definiciones de su máquina de estados directamente en las AWS CloudFormation plantillas.

Para obtener más información, consulte Utilización AWS CloudFormation para crear un flujo de trabajo en Step Functions.

AWS CDK

Puede crear máquinas de estado estándar y exprés con AWS CDK.

Para crear un flujo de trabajo estándar, consulte Uso de CDK para crear un flujo de trabajo estándar.

Para crear un flujo de trabajo rápido, consulte Uso de CDK para crear un flujo de trabajo rápido.

Terraform

Terraform by HashiCorp es un marco para crear aplicaciones que utilizan la infraestructura como código (IaC). Con Terraform, puede crear máquinas de estado y utilizar características, como obtener una vista previa de las implementaciones de infraestructura y crear plantillas reutilizables. Las plantillas de Terraform le ayudan a mantener y reutilizar el código al dividirlo en partes más pequeñas.

Para obtener más información, consulte Uso de Terraform para implementar máquinas de estado en Step Functions.

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.