Projete uma máquina de estado no Workflow Studio - AWS Step Functions

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Projete uma máquina de estado no Workflow Studio

Neste tutorial, você aprenderá as noções básicas de trabalhar com o Workflow Studio para AWS Step Functions. No Modo de design Workflow Studio, você criará uma máquina de estados contendo vários estadosPass, incluindo ChoiceFail,Wait,, Parallel e. Você usará o atributo de arrastar e soltar para pesquisar, selecionar e configurar esses estados. Em seguida, você visualizará a definição gerada automaticamente Amazon States Language (ASL) do seu fluxo de trabalho. Você também usará o Modo de código do Workflow Studio para editar a definição do fluxo de trabalho. Após isso, você sairá do Workflow Studio, executará a máquina de estado e analisará os detalhes da execução.

Neste tutorial, você também aprenderá como atualizar a máquina de estado e visualizar as alterações na saída de execução. Por fim, você executará uma etapa de limpeza e excluirá a máquina de estado.

Depois de concluir este tutorial, você saberá como usar o Workflow Studio para criar e configurar fluxos de trabalho usando os modos Design e Código. Você também aprenderá a atualizar, executar e excluir a máquina de estado.

Etapa 1: Navegue até o Workflow Studio

  1. Abra o console do Step Functions e clique em Criar máquina de estado.

  2. Na caixa de diálogo Escolher um modelo, selecione Em branco.

  3. Escolha Selecionar para abrir o Workflow Studio emModo de design.

Etapa 2: Criar uma máquina de estado

No Workflow Studio, a máquina de estado é uma representação gráfica do fluxo de trabalho. Com o Workflow Studio, você pode definir, configurar e examinar as etapas individuais do fluxo de trabalho. Nas etapas a seguir, você usará o Modo de design do Workflow Studio para criar uma máquina de estado.

Para criar uma máquina de estado do
  1. Verifique se você está no modo Design do Workflow Studio.

  2. No Navegador de estados à esquerda, clique na guia Fluxo. Em seguida, arraste o estado Passagem para o estado vazio Arrastar o primeiro estado para cá.

  3. Arraste o estado Escolha da guia Fluxo e solte-o abaixo do estado Passagem.

  4. Em Nome do estado, mude o nome Escolha. Neste tutorial, use o nome IsHelloWorldExample.

  5. Arraste outro estado do Pass e solte-o em uma ramificação do IsHelloWorldExampleestado. Em seguida, arraste um estado de falha e solte-o abaixo da outra ramificação do IsHelloWorldExampleestado.

  6. Clique em Passagem (1) adicionado e renomeie-o para Yes. Renomeie o estado Falha para No.

  7. Especifique a lógica de ramificação do IsHelloWorldExampleestado usando a variável booleana. IsHelloWorldExample

    Se IsHelloWorldExample for False, o fluxo de trabalho entrará no estado Não. Caso contrário, o fluxo de trabalho continuará o fluxo de execução no estado Sim.

    Para definir a lógica de ramificação, faça o seguinte:

    1. Escolha o IsHelloWorldExampleestado no eGráfico de tela e fluxo de trabalho, em Regras de escolha, escolha o ícone de edição na caixa Regra #1 para definir a regra de primeira escolha.

    2. Escolha Adicionar condições.

    3. Na caixa de diálogo Condições da regra 1, digite $.IsHelloWorldExample em Variável.

    4. Em Operador, escolha a opção é igual a.

    5. Selecione Constante booleana em Valor e depois escolha verdadeiro na lista suspensa.

    6. Clique em Salvar condições.

    7. Na lista suspensa Então o próximo estado é:, selecione Sim.

    8. Clique em Adicionar nova regra de escolha e depois em Adicionar condições.

    9. No campo Regra 2, defina a segunda regra de escolha para quando o valor da variável IsHelloWorldExample for falso, repetindo as subetapas de 7.c a 7.f. Para a etapa 7.e, selecione falso em vez de verdadeiro.

    10. No campo Regra 2, selecione Não na lista suspensa Então o próximo estado é:.

    11. No campo Regra padrão, clique no ícone de edição para definir a regra de escolha padrão e, em seguida, selecione Sim na lista suspensa.

  8. Adicione um estado Aguardar após o estado Sim e nomeie-o como Wait 3 sec. Logo após, configure o tempo de espera para três segundos realizando as etapas a seguir.

    1. Em Opções, não altere a configuração definida em Aguardar um intervalo fixo.

    2. Em Segundos, verifique se a opção Inserir segundos está selecionada e digite 3 no campo.

  9. Após o estado Aguardar 3 seg, adicione o estado Paralelo. Adicione dois estados Passagem em suas duas ramificações. Nomeie o primeiro estado Passagem como Hello. Nomeie o segundo estado Passagem como World.

    O fluxo de trabalho concluído deve ter a aparência do diagrama a seguir:

    Captura de tela do fluxo de trabalho da máquina de IsHelloWorldExample estado.

Etapa 3: Revisar a definição da Amazon States Language gerada automaticamente

Conforme você arrasta e solta estados da guia Fluxo na tela, o Workflow Studio compõe automaticamente a definição do Amazon States Language (ASL) do seu fluxo de trabalho em tempo real. No painel Painel do Inspector, clique no botão de alternância Definição para visualizar essa definição ou mude para o Modo de código para alterá-la conforme necessário. Para obter informações sobre como alterar a definição do fluxo de trabalho, consulte a Etapa 4 deste tutorial.

  • (Opcional) Clique em Definição no painel Inspector e veja o fluxo de trabalho da máquina de estado.

    O código de exemplo a seguir mostra a definição da Amazon States Language gerada automaticamente para a máquina de estado IsHelloWorldExample. O estado Choice adicionado no Workflow Studio é usado para determinar o fluxo de execução com base na lógica de ramificação que você definiu na Etapa 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 } } } ] } } }

Etapa 4: Alterar a definição do fluxo de trabalho no modo Código

O modo Código do Workflow Studio fornece um editor de código integrado para visualizar e editar a ASL definição de seus fluxos de trabalho.

  1. Clique em Código para alternar para o modo Código.

  2. Após a definição do estado Paralelo, posicione o cursor e pressione Enter.

  3. Pressione Ctrl+space para ver a lista de estados que podem ser adicionados após o estado Paralelo.

  4. Escolha Estado Passagem na lista de opções. O editor de código adiciona um código clichê para o Estado Passagem.

  5. A adição desse estado gera erros na definição do fluxo de trabalho. Na definição do estado Paralelo, substitua "End": true por "Next": "PassState".

  6. Na definição do Estado Passagem que você adicionou, faça as seguintes alterações:

    1. Remova o nó Resultado.

    2. Remova "ResultPath": "$.result", e "Next": "NextState".

    3. Depois de "Type": "Pass",, digite "End": true.

    4. Adicione uma , após a definição do Estado Passagem.

A definição do fluxo de trabalho agora deve ser semelhante à definição a seguir.

{ "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" } } }

Etapa 5: Salvar a máquina de estado

  1. Escolha Config more ou escolha o ícone de edição ao lado do nome padrão da máquina de estado de. MyStateMachine Em Configuração da máquina de estado, forneça um nome adequado. Por exemplo, digite HelloWorld.

  2. (Opcional) Especifique outras configurações do fluxo de trabalho, como o tipo de máquina de estado e função de execução. Para este tutorial, mantenha todas as seleções padrão na Configuração da máquina de estado.

  3. Escolha Criar.

  4. Na caixa de diálogo Confirmar criação do perfil, selecione Confirmar para continuar.

    Você também pode clicar em Exibir configurações da função para retornar ao modo Configurar.

Para obter mais informações sobre o modo Config, consulte Modo Configurar do Workflow Studio.

Etapa 6: Executar a máquina de estado

As execuções de máquinas de estado são instâncias em que o fluxo de trabalho é executado para a realização de tarefas.

  1. Na página Máquinas de estado, escolha a máquina de HelloWorldestado.

  2. Na HelloWorldpágina, escolha Iniciar execução.

  3. (Opcional) Insira um nome de execução personalizado para substituir o padrão gerado.

    ASCIINão-nomes e registro

    Step Functions aceita nomes para máquinas de estado, execuções, atividades e rótulos que não contenham ASCII caracteres. Como esses caracteres não funcionarão com a Amazon CloudWatch, recomendamos usar somente ASCII caracteres para que você possa acompanhar as métricas CloudWatch.

  4. Na caixa Entrada, insira os valores de entrada para sua execução no JSON formato. Com base na entrada, a variável IsHelloWorldExample determina qual fluxo de máquina de estado será executado. Por enquanto, use o seguinte valor de entrada:

    { "IsHelloWorldExample": true }
    nota

    Embora especificar uma entrada de execução seja opcional, neste tutorial é obrigatório especificar uma entrada de execução semelhante à entrada do exemplo acima. Esse valor de entrada é referenciado no estado Choice quando você executa a máquina de estado.

  5. Selecione Iniciar execução.

  6. O console do Step Functions direciona você para uma página em que o título é o ID da execução. Essa página é conhecida como página de Detalhes da execução. Nesta página, você pode revisar os resultados da execução à medida que a execução avança ou após a conclusão.

    Para revisar os resultados da execução, escolha estados individuais na Exibição em gráfico e, em seguida, escolha as guias individuais no painel Detalhes da etapa para visualizar os detalhes de cada estado, incluindo entrada, saída e definição, respectivamente. Para obter detalhes sobre as informações de execução que você pode visualizar na página Detalhes da execução, consulte Visão geral dos detalhes da execução.

    Para este tutorial, se você inseriu o valor de entrada "IsHelloWorldExample": true, deve ver a saída a seguir.

    { "IsHelloWorldExample": true }, { "IsHelloWorldExample": true }

Etapa 7: Atualizar a máquina de estado

Quando você atualiza uma máquina de estado, as atualizações são realizadas por meio da consistência posterior. Depois de um curto período, todas as execuções recém-iniciadas refletirão a definição atualizada da máquina de estado. Todas as execuções em andamento no momento serão concluídas de acordo com a definição anterior.

Nesta etapa, você atualizará a máquina de estado no modo Modo de design do Workflow Studio. Você adicionará o campo Result no estado Passagem chamado Mundo.

  1. Na página com o título do ID da execução, clique em Editar máquina de estado.

  2. Verifique se você está no modo Design.

  3. Clique no estado Passagem chamado Mundo na tela e, em seguida, escolha Saída.

  4. No campo Resultado, digite "World has been updated!".

  5. Escolha Salvar.

  6. (Opcional) Na área de Definição, veja a definição atualizada da Amazon States Language para o fluxo de trabalho.

    { "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" }
  7. Clique em Executar.

  8. Na caixa de diálogo Iniciar execução que é aberta em uma nova guia, digite a seguinte entrada de execução.

    { "IsHelloWorldExample": true }
  9. Escolha Start Execution.

  10. (Opcional) Na Exibição em gráfico, selecione a etapa Mundo e, em seguida, clique em Saída. A saída é Mundo foi atualizado!

Etapa 8: Limpeza

Para excluir a máquina de estado
  1. No menu de navegação, clique em Máquinas de estado.

  2. Na página Máquinas de estado, selecione e HelloWorld, em seguida, escolha Excluir.

  3. Na caixa de diálogo Excluir máquina de estado, digite delete para confirmar a exclusão.

  4. Escolha Excluir.

    Se a exclusão for bem-sucedida, uma barra de status verde será exibida na parte superior da tela. A barra de status verde informa que a máquina de estado foi selecionada para exclusão. A máquina de estado será excluída assim que todas as execuções em andamento pararem de ser executadas.

Para excluir a função de execução
  1. Abra a página Funções doIAM.

  2. Escolha a IAM função que o Step Functions criou para você. Por exemplo, StepFunctions- HelloWorld -role-. EXAMPLE

  3. Clique em Excluir função.

  4. Depois em Sim, excluir.