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.
Diseñar una máquina de estados en Workflow Studio
En este tutorial, aprenderá los conceptos básicos para trabajar con Workflow Studio para AWS Step Functions. En Modo Diseño Workflow Studio, creará una máquina de estados que contenga varios estadosPass
, incluidos Choice
Fail
,Wait
, yParallel
. Utilizará la característica de arrastrar y soltar para buscar, seleccionar y configurar estos estados. A continuación, verás la definición generada automáticamente Amazon States Language (ASL) de tu flujo de trabajo. También puede editar la Modo Código de Workflow Studio para editar la definición del flujo de trabajo. A continuación, saldrá de Workflow Studio, ejecutará la máquina de estado y revisará los detalles de la ejecución.
En este tutorial, también aprenderá a actualizar la máquina de estado y a ver los cambios en el resultado de la ejecución. Por último, realizará un paso de limpieza y eliminará su máquina de estado.
Tras completar este tutorial, sabrá cómo usar Workflow Studio para crear y configurar un flujo de trabajo mediante los modos Diseño y Código. También sabrá cómo actualizar, ejecutar y eliminar su máquina de estado.
Paso 1: Navegar a Workflow Studio
-
Abra la consola de Step Functions
y seleccione Crear máquina de estado. -
En el cuadro de diálogo Elegir una plantilla, seleccione En blanco.
-
Selecciona Seleccionar para abrir Workflow Studio. Modo Diseño
Paso 2: Crear una máquina de estado
En Workflow Studio, una máquina de estado es una representación gráfica del flujo de trabajo. Con Workflow Studio, puede definir, configurar y examinar los pasos individuales de su flujo de trabajo. En los siguientes pasos, utilice el Modo Diseño de Workflow Studio para crear su máquina de estado.
Para crear una máquina de estado
-
Asegúrese de estar en el modo de Diseño de Workflow Studio.
-
Desde el Navegador de estados de la parte izquierda, seleccione la pestaña Flujo. A continuación, arrastre el estado Pass al estado vacío con la etiqueta Arrastrar primero el estado aquí.
-
En la pestaña Flujo, arrastre y suelte un estado Choice debajo del estado Pass.
-
En Nombre del estado, sustituya el nombre predeterminado de Choice. Para este tutorial, use el nombre
IsHelloWorldExample
. -
Arrastra otro estado de Pass y suéltalo en una sucursal del IsHelloWorldExampleestado. A continuación, arrastre un estado fallido y suéltelo debajo de la otra rama del IsHelloWorldExampleestado.
-
Elija el estado Pass (1) y cámbiele el nombre a
Yes
. Cambie el nombre del estado Fail aNo
. -
Especifique la lógica de ramificación del IsHelloWorldExampleestado mediante la variable booleana.
IsHelloWorldExample
Si
IsHelloWorldExample
esFalse
, el flujo de trabajo pasará al No. De lo contrario, el flujo de trabajo continuará su flujo de ejecución en el estado Sí.Para definir la lógica de ramificación, haga lo siguiente:
-
Elija el IsHelloWorldExampleestado de la regla #1 yLienzo y gráfico de flujo de trabajo, a continuación, en Reglas de elección, elija el icono de edición del cuadro Regla para definir la primera regla de elección.
-
Elija Añadir condiciones.
-
En el cuadro de diálogo Condiciones de la regla n.º 1, introduzca
$.IsHelloWorldExample
en Variable. -
Elija es igual a en Operador.
-
Elija Constante booleana en Valor y, a continuación, elija verdadero en la lista desplegable.
-
Seleccione Guardar condiciones.
-
Asegúrese de que la lista desplegable El siguiente estado es: tenga seleccionada la opción Sí.
-
Seleccione Añadir nueva regla de elección y, a continuación, seleccione Añadir condiciones.
-
En el cuadro Regla n.º 2, defina la segunda regla de elección cuando el valor de la variable
IsHelloWorldExample
sea falso repitiendo los subpasos 7.c a 7.f. Para el paso 7.e, elija falso en lugar de verdadero. -
En el cuadro Regla n.º 2, seleccione No en la lista desplegable El siguiente estado es:.
-
En el cuadro Regla predeterminada, elija el icono de edición para definir la regla de elección predeterminada y, a continuación, elija Sí en la lista desplegable.
-
-
Añada un estado Wait después del estado Sí y asígnele el nombre
Wait 3 sec
. A continuación, configure el tiempo de espera para que sea de tres segundos siguiendo estos pasos:-
En Opciones, mantenga la selección predeterminada de Esperar un intervalo fijo.
-
En Segundos, asegúrese de que esté seleccionada la opción Introducir segundos y, a continuación, introduzca
3
en el cuadro.
-
-
Tras el estado Wait 3 sec, añada un estado Parallel. Añada dos estados Pass en sus dos ramificaciones. Indique el primer estado de Pass
Hello
. Indique el segundo estado PassWorld
.El flujo de trabajo completo debería tener el siguiente aspecto:
Paso 3: Revisar la definición de Amazon States Language generada automáticamente
A medida que arrastra y suelta estados de la pestaña Flow en el lienzo, Workflow Studio elabora automáticamente la definición de Amazon States Language (ASL) de su flujo de trabajo en tiempo real. En el panel de Panel de inspectores, pulse el botón de alternancia Definición para ver esta definición o cambie al Modo Código para editar esta definición según sea necesario. Para obtener información sobre la edición de la definición del flujo de trabajo, consulte el Paso 4 de este tutorial.
-
(Opcional) Seleccione Definición en el panel Inspector y visualice el flujo de trabajo de la máquina de estado.
El siguiente código de ejemplo muestra la definición autogenerada de Amazon States Language para la máquina de estado
IsHelloWorldExample
. El estadoChoice
que agregó en Workflow Studio se usa para determinar el flujo de ejecución en función de la lógica de ramificación definida en el Paso 2.{ "Comment": "A Hello World example of the Amazon States Language using Pass states", "StartAt": "Pass", "States": { "Pass": { "Type": "Pass", "Next": "IsHelloWorldExample", "Comment": "A Pass state passes its input to its output, without performing work. Pass states are useful when constructing and debugging state machines." }, "IsHelloWorldExample": { "Type": "Choice", "Comment": "A Choice state adds branching logic to a state machine. Choice rules can implement 16 different comparison operators, and can be combined using And, Or, and Not\"", "Choices": [ { "Variable": "$.IsHelloWorldExample", "BooleanEquals": false, "Next": "No" }, { "Variable": "$.IsHelloWorldExample", "BooleanEquals": true, "Next": "Yes" } ], "Default": "Yes" }, "No": { "Type": "Fail", "Cause": "Not Hello World" }, "Yes": { "Type": "Pass", "Next": "Wait 3 sec" }, "Wait 3 sec": { "Type": "Wait", "Seconds": 3, "Next": "Parallel" }, "Parallel": { "Type": "Parallel", "End": true, "Branches": [ { "StartAt": "Hello", "States": { "Hello": { "Type": "Pass", "End": true } } }, { "StartAt": "World", "States": { "World": { "Type": "Pass", "End": true } } } ] } } }
Paso 4: Editar la definición del flujo de trabajo en el modo Código
El modo Código de Workflow Studio proporciona un editor de código integrado para ver y editar la ASL definición de sus flujos de trabajo.
-
Elija Código para cambiar al modo Código.
-
Tras la definición del estado Parallel, coloque el cursor y pulse
Enter
. -
Pulse
Ctrl+space
para ver la lista de estados que puede añadir después del estado Parallel. -
Elija Estado Pass en la lista de opciones. El editor de código añade un código reutilizable para el Estado Pass.
-
La adición de este estado provoca errores en la definición del flujo de trabajo. En la definición del estado Parallel, sustituya
"End": true
por
."Next": "PassState"
-
En la definición de Estado Pass que agregó, realice los siguientes cambios:
-
Elimine el nodo Resultado.
-
Elimine
"ResultPath": "$.result",
y"Next": "NextState"
. -
Después de
"Type": "Pass",
, introduzca
."End": true
-
Añada una
,
después de la definición de Estado Pass.
-
La definición de del flujo de trabajo debería ser similar a la definición siguiente.
{
"Comment": "A description of my state machine",
"StartAt": "Pass",
"States": {
"Pass": {
"Type": "Pass",
"Next": "IsHelloWorldExample"
},
"IsHelloWorldExample": {
"Type": "Choice",
"Choices": [
{
"Variable": "$.IsHelloWorldExample",
"BooleanEquals": true,
"Next": "Yes"
},
{
"Variable": "$.IsHelloWorldExample",
"BooleanEquals": false,
"Next": "No"
}
],
"Default": "Yes"
},
"Yes": {
"Type": "Pass",
"Next": "Wait 3 seconds"
},
"Wait 3 seconds": {
"Type": "Wait",
"Seconds": 3,
"Next": "Parallel"
},
"Parallel": {
"Type": "Parallel",
"Branches": [
{
"StartAt": "Hello",
"States": {
"Hello": {
"Type": "Pass",
"End": true
}
}
},
{
"StartAt": "World",
"States": {
"World": {
"Type": "Pass",
"End": true
}
}
}
],
"Next": "PassState"
},
"PassState": {
"Type": "Pass",
"End": true
},
"No": {
"Type": "Fail"
}
}
}
Paso 5: Guardar la máquina de estado
-
Elija el modo Config o elija el icono de edición junto al nombre de la máquina de estado predeterminada de MyStateMachine. A continuación, en Configuración de la máquina de estado, especifique un nombre. Por ejemplo, introduzca
HelloWorld
. -
(Opcional) Especifique otra configuración del flujo de trabajo, como el tipo de máquina de estado y su función de ejecución. Para este tutorial, mantenga todas las selecciones predeterminadas en Configuración de máquina de estado.
-
Seleccione Crear.
-
En el cuadro de diálogo Confirmar creación de rol, elija Confirmar para continuar.
También puede elegir Ver configuración de roles para volver al modo Config.
Para obtener más información sobre el modo Config, consulte Modo Config de Workflow Studio.
Paso 6: Ejecutar la máquina de estado
Las ejecuciones de máquinas de estado son instancias en las que se ejecuta un flujo de trabajo para realizar tareas.
-
En la página Máquinas de estado, elija la máquina de HelloWorldestado.
-
En la HelloWorldpágina, elija Iniciar ejecución.
-
(Opcional) Introduzca un nombre de ejecución personalizado para anular el valor predeterminado generado.
ASCIINombres no identificables y registro
Step Functions acepta nombres para máquinas de estados, ejecuciones, actividades y etiquetas que no contengan ASCII caracteres. Como estos personajes no funcionan con Amazon CloudWatch, te recomendamos que utilices solo ASCII caracteres para poder hacer un seguimiento de las métricas CloudWatch.
-
En el cuadro de entrada, introduce los valores de entrada para la ejecución en JSON formato. En función de su entrada, la variable
IsHelloWorldExample
determina en qué estado se ejecutará el flujo de la máquina. Por ahora, introduzca el siguiente valor de entrada:{ "IsHelloWorldExample": true }
nota
Aunque especificar una entrada de ejecución es opcional, en este tutorial es obligatorio especificar una entrada de ejecución similar a la entrada del ejemplo anterior. Se hace referencia a este valor de entrada en el estado
Choice
al ejecutar la máquina de estado. -
Seleccione Iniciar ejecución.
-
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.
Para revisar los resultados de 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. Para obtener más información sobre la ejecución que puede ver en la página Detalles de la ejecución, consulte Descripción general de los detalles de ejecución.
En este tutorial, si ha introducido un valor de entrada de
"IsHelloWorldExample": true
, debería ver el siguiente resultado:{ "IsHelloWorldExample": true }, { "IsHelloWorldExample": true }
Paso 7: Actualizar la máquina de estado
Cuando actualices una máquina de estado, sus actualizaciones son finalmente consistentes. Tras un breve periodo de tiempo, todas las ejecuciones recién iniciadas reflejarán la definición actualizada de la máquina de estado. Según la definición anterior, todas las ejecuciones que se estén ejecutando actualmente se ejecutarán hasta completarse.
En este paso, actualizará su máquina de estado en el modo Modo Diseño de Workflow Studio. Añadirá un campo Result
en el estado Pass denominado World.
-
En la página titulada con su ID de ejecución, seleccione Editar máquina de estado.
-
Asegúrese de estar en el modo Diseño.
-
Elija el estado Pass llamado World en el lienzo y, a continuación, seleccione Salida.
-
En el cuadro Resultado, introduzca
"World has been updated!"
. -
Seleccione Guardar.
-
(Opcional) En el área Definición, consulte la definición actualizada de su flujo de trabajo en Amazon States Language.
{ "Type": "Parallel", "End": true, "Branches": [ { "StartAt": "Hello", "States": { "Hello": { "Type": "Pass", "End": true } } }, { "StartAt": "World", "States": { "World": { "Type": "Pass", "Result": "World has been updated!", "End": true } } } ], "Next": "PassState" }
-
Elija Ejecutar.
-
En el cuadro de diálogo Iniciar la ejecución, que se abre en una nueva pestaña, introduzca la siguiente entrada de ejecución.
{ "IsHelloWorldExample": true }
-
Seleccione Iniciar ejecución.
-
(Opcional) En la Vista gráfica, elija el paso World y, a continuación, elija Salida. El resultado es ¡World se ha actualizado!
Paso 8: Eliminación
Para eliminar su máquina de estado
-
En el panel de navegación, elija Máquinas de estados.
-
En la página Máquinas de estado, seleccione y HelloWorld, a continuación, elija Eliminar.
-
En el cuadro de diálogo Eliminar máquina de estado, escriba
delete
para confirmar la eliminación. -
Elija Eliminar.
Si la eliminación se ha realizado correctamente, aparecerá una barra verde en la parte superior de la pantalla. La barra de estado verde indica que la máquina de estado está marcada para su eliminación. La máquina de estado se eliminará cuando todas las ejecuciones en curso dejen de ejecutarse.
Para eliminar el rol de ejecución
-
Abra la página de roles
paraIAM. -
Elija el IAM rol que Step Functions creó para usted. Por ejemplo, StepFunctions- HelloWorld -role-. EXAMPLE
-
Elija Eliminar rol.
-
Elija Sí, eliminar.