Este post foi escrito por Ben Freiberg, arquiteto sênior de soluções.
O AWS Step Functions apresenta uma experiência de IDE local aprimorada para simplificar a criação de máquinas de estado. O Workflow Studio agora está disponível no Visual Studio Code (VS Code) por meio da extensão AWS Toolkit. Com essa integração, os desenvolvedores podem criar e editar máquinas de estado em seu IDE local usando a mesma experiência poderosa de criação visual encontrada no console da AWS.
O Step Functions é um serviço visual de fluxo de trabalho que ajuda os desenvolvedores a usar os serviços da AWS para criar aplicativos distribuídos, automatizar processos, orquestrar microsserviços e criar pipelines de dados e aprendizado de máquina (ML).
Os clientes escolhem o Step Functions para criar fluxos de trabalho que envolvem vários serviços, como AWS Lambda, AWS Fargate, Amazon Bedrock e integrações de API HTTP. Os desenvolvedores criam esses fluxos de trabalho como máquinas de estado por meio do console da AWS usando o Workflow Studio ou como código usando a Amazon States Language (ASL), uma linguagem específica de domínio baseada em JSON. Os desenvolvedores mantêm suas definições de fluxos de trabalho junto com o aplicativo e o código de infraestrutura como código (IaC). Agora, os criadores têm ainda mais recursos para criar e testar seu fluxo de trabalho no VS Code que corresponde à mesma experiência do console da AWS.
Simplificando o desenvolvimento do fluxo de trabalho local
O Workflow Studio integrado fornece aos desenvolvedores uma experiência perfeita para criar fluxos de trabalho do Step Functions em seu IDE local. Você usará a mesma tela usada no console da AWS para arrastar e soltar estados para criar seus fluxos de trabalho. Conforme você modifica visualmente o fluxo de trabalho, a definição de ASL é atualizada automaticamente, para que você possa se concentrar na lógica comercial em vez da sintaxe. A integração do Workflow Studio oferece a mesma abordagem intuitiva e visual para projetar máquinas de estado que o console da AWS, sem mudar o contexto.
Começando
Para usar a experiência atualizada do IDE, verifique se você tem o AWS Toolkit com pelo menos a versão 3.49.0 instalado como uma extensão do VS Code.
Figura 1: Atualização do AWS Toolkit disponível
Depois de instalar a extensão do AWS Toolkit, você pode começar a criar com o Workflow Studio abrindo uma definição de máquina de estado. Você pode usar um arquivo de definição do seu espaço de trabalho local ou usar o AWS Explorer para baixar uma definição de máquina de estado existente da nuvem. A integração com o VS Code oferece suporte às definições de ASL nos formatos JSON e YAML. (Observação: os arquivos devem terminar em .asl.json
, asl.yml
ou .asl.yaml
para que o Workflow Studio abra automaticamente o arquivo.) Ao trabalhar com arquivos YAML, o Workflow Studio converte a definição em JSON para edição e, em seguida, converte novamente em YAML antes de salvar.
Figura 2: Modo de design no Workflow Studio
O Workflow Studio no VS Code é compatível com os modos Design e Código. O modo de design fornece uma interface gráfica para criar e inspecionar seus fluxos de trabalho. No modo Código, você pode usar um editor de código integrado para visualizar e editar a definição da Amazon States Language (ASL) dos seus fluxos de trabalho. Você sempre pode voltar à edição baseada em texto selecionando o link Retornar ao editor padrão no canto superior direito do Workflow Studio, conforme mostrado na tela a seguir.
Figura 3: Modo de código no Workflow Studio
Para abrir o Workflow Studio no VS Code manualmente, você pode usar a ação “Open with Workflow Studio” na parte superior de um arquivo de definição de fluxo de trabalho ou o ícone no canto superior direito do painel do editor. Ambas as opções são destacadas na tela a seguir. Além disso, você pode usar o menu de contexto do arquivo para abrir o Workflow Studio no painel do explorador de arquivos.
Figura 4: Integrações do Workflow Studio no editor
As edições feitas no Workflow Studio são automaticamente sincronizadas com o arquivo subjacente como alterações não salvas. Para manter suas alterações, você deve salvá-las do Workflow Studio ou do editor de arquivos. Da mesma forma, todas as alterações feitas no arquivo local são sincronizadas com o Workflow Studio ao serem salvas.
O Workflow Studio está ciente das substituições de definições, então você pode até mesmo editar fluxos de trabalho que foram integrados às suas ferramentas de IaC, como o AWS CloudFormation ou o AWS Cloud Development Kit (CDK). As substituições de definições são um recurso do CloudFormation que permite adicionar referências dinâmicas em sua definição de fluxo de trabalho a um valor que você fornece em seu modelo 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
Em seguida, você pode usar as Substituições de Definição na definição de sua 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 %}"
}
O código define um estado de tarefa do Step Functions que grava uma mensagem no DynamoDB usando a operação putItem. A sintaxe de substituição ${tableName}
permite um nome de tabela dinâmico do DynamoDB que pode ser passado como parâmetro quando a máquina de estado é executada.
Teste e implantação
A integração do Workflow Studio oferece suporte ao teste de um único estado por meio da API TestState do Step Functions. Com a API TestState, você pode testar um estado na nuvem a partir do seu IDE local sem criar uma máquina de estado ou atualizar uma máquina de estado existente. Com o poder dos testes granulares localizados, você pode criar e depurar alterações em estados individuais sem precisar invocar toda a máquina de estados. Por exemplo, você pode refinar o processamento de entrada ou saída ou atualizar a lógica condicional em um estado de escolha sem sair do IDE.
Testando um estado
- Abra qualquer arquivo de definição de máquina de estado no Workflow Studio
- Selecione um estado na tela ou na guia de código
- Abra o painel Inspetor no lado direito, se ainda não estiver aberto
Figura 5: Argumentos de um estado individual - Selecione o botão Test State na parte superior
- Selecione sua função do IAM e adicione a entrada. Certifique-se de que a função tenha as permissões necessárias para usar a API TestState
- Se seu estado contiver alguma substituição de definição, você verá uma seção adicional na qual poderá substituí-la por seus valores específicos.
- Selecione Start Test
Figura 6: Configuração do TestState com uma substituição de definição
Depois que o teste for bem-sucedido, você poderá publicar seu fluxo de trabalho a partir do IDE usando o AWS Toolkit. Você também pode usar ferramentas de IaC, como o AWS Serverless Application Model, o AWS CDK ou o CloudFormation, para implantar sua máquina de estado.
Conclusão
A Step Functions está introduzindo uma experiência aprimorada de IDE local para simplificar o desenvolvimento de fluxos de trabalho usando o VS Code IDE e o AWS Toolkit. Isso simplifica o ciclo de código-teste-implantação-depuração e oferece aos desenvolvedores uma integração perfeita do Workflow Studio. Ao combinar o design visual do fluxo de trabalho com o poder de um IDE completo, os desenvolvedores agora podem criar fluxos de trabalho do Step Functions com mais eficiência.
Para começar, instale o AWS Toolkit for Visual Studio Code e visite o guia do usuário sobre a integração do Workflow Studio. Encontre exemplos práticos, melhores práticas e recursos úteis para a AWS sem servidor em Serverless Land.
Este blog é uma tradução do conteúdo original em inglês (link aqui).
Biografia do Tradutor
![]() | Rodrigo Peres é Arquiteto de Soluções na AWS, com mais de 20 anos de experiência trabalhando com arquitetura de soluções, desenvolvimento de sistemas e modernização de sistemas legados. |
Biografia do Revisor
![]() | Daniel Abib é arquiteto de soluções sênior na AWS, com mais de 25 anos trabalhando com gerenciamento de projetos, arquiteturas de soluções escaláveis, desenvolvimento de sistemas e CI/CD, microsserviços, arquitetura Serverless & Containers e segurança. Ele trabalha apoiando clientes corporativos, ajudando-os em sua jornada para a nuvem. |