Blog de HAQM Web Services (AWS)
Presentación de una experiencia IDE local mejorada para AWS Step Functions
Esta publicación fue escrita por Ben Freiberg, arquitecto senior de soluciones.
AWS Step Functions presenta una experiencia IDE local mejorada para simplificar la creación de máquinas de estado. Workflow Studio ya está disponible en Visual Studio Code (VS Code) mediante la extensión kit de herramientas de AWS. Con esta integración, los desarrolladores pueden crear y editar máquinas de estados en su IDE local utilizando la misma potente experiencia de creación visual que se encuentra en la consola de AWS.
Step Functions es un servicio de flujo de trabajo visual que ayuda a los desarrolladores a utilizar los servicios de AWS para crear aplicaciones distribuidas, automatizar procesos, organizar microservicios y crear canalizaciones de datos y aprendizaje automático (ML).
Los clientes eligen Step Functions para crear flujos de trabajo que incluyan varios servicios, como AWS Lambda, AWS Fargate, HAQM Bedrock e integraciones de API HTTP. Los desarrolladores crean estos flujos de trabajo como máquinas de estados a través de la consola de AWS con Workflow Studio o como código con HAQM States Language (ASL), un lenguaje de dominio específico basado en JSON. Los desarrolladores mantienen las definiciones de sus flujos de trabajo junto con la aplicación y el código de infraestructura como código (IaC). Ahora los desarrolladores tienen aún más capacidades para crear y probar su flujo de trabajo en VS Code, que se adaptan a la misma experiencia que en la consola de AWS.
Simplificar el desarrollo del flujo de trabajo local
El Workflow Studio integrado proporciona a los desarrolladores una experiencia unificada para crear flujos de trabajo de Step Functions dentro de su IDE local. Utilizará el mismo lienzo que se utiliza en la consola de AWS para arrastrar y soltar estados y crear sus flujos de trabajo. A medida que modifica visualmente el flujo de trabajo, la definición de ASL se actualiza automáticamente para que pueda centrarse en la lógica empresarial en lugar de en la sintaxis. La integración de Workflow Studio ofrece el mismo enfoque intuitivo y visual para diseñar máquinas de estados que la consola de AWS, sin cambiar de contexto.
Primeros pasos
Para utilizar la experiencia de IDE actualizada, compruebe que tiene el kit de herramientas de AWS con al menos la versión 3.49.0 instalada como extensión de VS Code.
Figura 1: Actualización de kit de herramientas de AWS disponible
Tras instalar la extensión de kit de herramientas de AWS, puede empezar a crear con Workflow Studio abriendo una definición de máquina de estados. Puede usar un archivo de definición de su espacio de trabajo local o usar explorador de AWS para descargar de la nube una definición de máquina de estados existente. La integración de VS Code admite las definiciones de ASL en los formatos JSON y YAML. (Nota: los archivos deben terminar en .asl.json
, .asl.yml
o .asl.yaml
para que Workflow Studio abra el archivo automáticamente). Mientras trabaja con archivos YAML, Workflow Studio convierte la definición a JSON para editarla y, a continuación, la convierte de nuevo a YAML antes de guardarla.
Figura 2: Modo de diseño en Workflow Studio
Workflow Studio en VS Code admite los modos Diseño y Código. El modo de Diseño proporciona una interfaz gráfica para crear e inspeccionar sus flujos de trabajo. En el modo Código, puede usar un editor de código integrado para ver y editar la definición de sus flujos de trabajo en el HAQM States Language (ASL). Siempre puede volver a la edición basada en texto seleccionando el enlace Volver al editor predeterminado en la parte superior derecha de Workflow Studio, como se muestra en la siguiente pantalla.
Figura 3: Modo de Código en Workflow Studio
Para abrir Workflow Studio en VS Code manualmente, puede usar la acción “Open with Workflow Studio” en la parte superior del archivo de definición de un flujo de trabajo o el icono en la parte superior derecha del panel del editor. Ambas opciones aparecen resaltadas en la siguiente pantalla. Además, puede usar el menú contextual del archivo para abrir Workflow Studio desde el panel del explorador de archivos.
Figura 4: Integraciones de Workflow Studio en el editor
Las ediciones que realice en Workflow Studio se sincronizan automáticamente con el archivo subyacente como cambios no guardados. Para conservar los cambios, debe guardarlos desde Workflow Studio o desde el editor de archivos. Del mismo modo, cualquier cambio que realice en el archivo local se sincronizará con Workflow Studio al guardarlo.
Workflow Studio conoce las sustituciones de definiciones, por lo que incluso puede editar los flujos de trabajo que se hayan integrado con sus herramientas de IaC, como AWS CloudFormation o el AWS Cloud Development Kit (CDK). Las sustituciones de definiciones son una función de CloudFormation que le permite añadir referencias dinámicas en la definición de su flujo de trabajo a un valor que indique en su plantilla de IaC.
AWSTemplateFormatVersion: "2010-09-09"
Description: "State machine with Definition Substitutions"
Resources:
MyStateMachine:
Type: AWS::StepFunctions::StateMachine
Properties:
StateMachineName: HelloWorld-StateMachine
DefinitionS3Location:
Bucket: amzn-s3-demo-bucket
Key: state-machine-definition.json
DefinitionSubstitutions:
TableName: DemoTable
A continuación, puede utilizar las sustituciones de definiciones en la definición de su máquina de estados.
"Write message to DynamoDB": {
"Type": "Task",
"Resource": "arn:aws:states:::dynamodb:putItem",
"Next": "Remove message from SQS queue",
"Arguments": {
"TableName": "${TableName}",
"Item": {
... omitted for brevity ...
}
},
"Output": "{% $states.input %}"
}
El código define un estado de tarea de Step Functions que escribe un mensaje en DynamoDB mediante la operación putitem. La sintaxis de sustitución de ${TableName}
permite un nombre de tabla de DynamoDB dinámico que se puede pasar como parámetro cuando se ejecuta la máquina de estados.
Pruebas e implementación
La integración de Workflow Studio permite probar un solo estado mediante la API TestState de Step Functions. Con la API TestState, puede probar un estado en la nube desde su IDE local sin crear una máquina de estados ni actualizar una máquina de estados existente. Con la potencia de las pruebas granulares localizadas, puede crear y depurar cambios para estados individuales sin necesidad de invocar toda la máquina de estados. Por ejemplo, puede refinar el procesamiento de entrada o salida, o actualizar la lógica condicional en un estado elegido sin salir nunca de su IDE.
Probar un estado
- Abra cualquier archivo de definición de máquina de estado en Workflow Studio
- Seleccione un estado del lienzo o de la pestaña de código
- Abra el panel del Inspector en el lado derecho si aún no lo ha abierto.
Figura 5: Argumentos de un estado individual - Seleccione el botón Test state en la parte superior
- Seleccione su rol de IAM y añada la entrada. Asegúrese de que el rol tenga los permisos necesarios para usar la API TestState
- Si su estado contiene sustituciones de definiciones, verá una sección adicional en la que podrá sustituirla por sus valores específicos.
- Seleccione Start Test
Figura 6: Configuración de TestState con una sustitución de definición
Una vez finalizada la prueba, puede publicar su flujo de trabajo desde el IDE mediante el kit de herramientas de AWS. También puede usar herramientas de IaC, como el modelo de aplicaciones sin servidor de AWS, AWS CDK o CloudFormation, para implementar su máquina de estados.
Conclusión
Step Functions presenta una experiencia IDE local mejorada para simplificar el desarrollo de flujos de trabajo mediante el IDE de VS Code y el kit de herramientas de AWS. Esto agiliza el ciclo de código, prueba, implementación y depuración y ofrece a los desarrolladores una integración perfecta de Workflow Studio. Al combinar el diseño visual del flujo de trabajo con la potencia de un IDE con todas las funciones, los desarrolladores ahora pueden crear flujos de trabajo de Step Functions de manera más eficiente.
Para empezar, instale el kit de herramientas de AWS para Visual Studio Code y consulte la guía del usuario sobre la integración de Workflow Studio. Encuentre ejemplos prácticos, prácticas recomendadas y recursos útiles sobre AWS sin servidor en Serverless Land.
Este contenido es una traducción del Blog Original en inglés traducido por Christian Bolaños y revisado por Diego Casas.