

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á.

# Usar o estado de mapa inline para repetir uma ação no Step Functions
<a name="tutorial-map-inline"></a>

Este tutorial ajuda você nos conceitos básicos ao usar o estado `Map` no modo em linha. Você usa o *estado Mapa em linha* em seus fluxos de trabalho para executar uma ação repetidamente. Para obter mais informações sobre o modo Em linha, consulte [Estado do mapa no modo Em linha](state-map-inline.md).

Neste tutorial, você usa o *estado Mapa em linha* para gerar repetidamente identificadores universalmente exclusivos da versão 4 (UUID v4). Você começa criando um fluxo de trabalho que contém dois estados [Estado de passagem do fluxo de trabalho](state-pass.md) e um *estado de Mapa em linha* no Workflow Studio. Em seguida, você configura a entrada e a saída, incluindo a matriz JSON de entrada para o estado `Map`. O estado `Map` retorna uma matriz de saída que contém os UUIDs v4 gerados para cada item na matriz de entrada.

## Etapa 1: Criar o protótipo do fluxo de trabalho
<a name="use-inline-map-create-workflow"></a>

Nesta e tapa, você cria o protótipo para seu fluxo de trabalho usando o Workflow Studio. O Workflow Studio é um designer visual de fluxo de trabalho disponível no console do Step Functions. Você vai escolher os estados necessários na guia **Fluxo** e usar o atributo de arrastar e soltar do Workflow Studio para criar o protótipo do fluxo de trabalho.

1. Abra o [console do Step Functions](https://console.aws.amazon.com/states/home). No menu, selecione **Máquinas de estado** e, em seguida, selecione **Criar máquina de estado**.

1. Selecione **Criar do zero**.

1. Nomeie sua máquina de estado e clique em **Continuar** para editá-la no Workflow Studio.

1. Na guia **Fluxo**, arraste o estado **Aprovado** e solte no estado vazio chamado **Arrastar o primeiro estado aqui**.

1. Arraste um estado **Mapa** e solte-o abaixo do estado **Aprovado**. Altere o nome do estado **Mapa** para **Map demo**.

1. Arraste um segundo estado **Aprovado** e solte-o dentro do estado **Demonstração do mapa**.

1. Altere o nome do segundo estado **Aprovado** como **Generate UUID**.

## Etapa 2: Configurar entrada e saída
<a name="use-inline-map-configure-io"></a>

Nesta etapa, você configura a entrada e a saída para todos os estados no protótipo de fluxo de trabalho. Primeiro, você injeta alguns dados fixos no fluxo de trabalho usando o primeiro estado **Aprovado**. Esse estado **Aprovado** transmite esses dados como entrada para o estado **Demonstração do mapa**. Nessa entrada, você especifica o nó que contém a matriz de entrada sobre a qual o estado **Demonstração do mapa** deve iterar. Em seguida, você define a etapa que o estado **Demonstração do mapa** deve repetir para gerar os UUIDs v4. Por fim, você configura a saída para retornar para cada repetição.

1. Escolha o primeiro estado **Aprovado** em seu protótipo de fluxo de trabalho. Na guia **Saída**, insira o seguinte em **Resultado**:

   ```
   {
     "foo": "bar",
     "colors": [
       "red",
       "green",
       "blue",
       "yellow",
       "white"
     ]
   }
   ```

1. Escolha o estado **Demonstração do mapa** e, na guia **Configuração**, faça o seguinte:

   1. Escolha **Provide a path to items array** (Fornecer um caminho para matriz de itens).

   1. Especifique o seguinte [caminho de referência](amazon-states-language-paths.md#amazon-states-language-reference-paths) para selecionar o nó que contém a matriz de entrada: 

      ```
      $.colors
      ```

1. Escolha o estado **Generate UUID** (Gerar UUID) e, na guia **Entrada**, faça o seguinte:

   1. Escolha **Transform input with Parameters** (Transformar entrada com parâmetros).

   1. Insira a seguinte entrada JSON para gerar os UUIDs v4 para cada um dos itens da matriz de entrada. Use a função intrínseca `States.UUID` para gerar os UUIDs.

      ```
      {
        "uuid.$": "States.UUID()"
      }
      ```

1. Para o estado **Generate UUID** (Gerar UUID), escolha a guia **Saída** e faça o seguinte:

   1. Escolha **Filter output with OutputPath** (Filtrar saída com OutputPath).

   1. Insira o seguinte caminho de referência para selecionar o nó JSON que contém os itens da matriz de saída: 

      ```
      $.uuid
      ```

## Etapa 3: revisar e salvar a definição gerada automaticamente
<a name="use-inline-map-review-asl-def"></a>

Conforme você arrasta e solta os estados do painel **Fluxo** na tela, o Workflow Studio cria automaticamente a definição da [Amazon States Language](concepts-amazon-states-language.md) (ASL) do fluxo de trabalho em tempo real. Você pode editar essa definição conforme necessário.

1. (Opcional) Escolha **Definição** no painel [Painel Inspetor](workflow-studio.md#workflow-studio-components-formdefinition) para ver a definição do Amazon States Language gerada automaticamente do seu fluxo de trabalho.
**dica**  
Você também pode ver a definição de ASL no [Editor de código](workflow-studio.md#wfs-interface-code-editor) do Workflow Studio. No editor de código, você também pode editar a definição de ASL do fluxo de trabalho.

   O exemplo a seguir mostra a definição da Amazon States Language gerada automaticamente para seu fluxo de trabalho.

   ```
   {
       "Comment": "Using Map state in Inline mode",
       "StartAt": "Pass",
       "States": {
         "Pass": {
           "Type": "Pass",
           "Next": "Map demo",
           "Result": {
             "foo": "bar",
             "colors": [
               "red",
               "green",
               "blue",
               "yellow",
               "white"
             ]
           }
         },
         "Map demo": {
           "Type": "Map",
           "ItemsPath": "$.colors",
           "ItemProcessor": {
             "ProcessorConfig": {
               "Mode": "INLINE"
             },
             "StartAt": "Generate UUID",
             "States": {
               "Generate UUID": {
                 "Type": "Pass",
                 "End": true,
                 "Parameters": {
                   "uuid.$": "States.UUID()"
                 },
                 "OutputPath": "$.uuid"
               }
             }
           },
           "End": true
         }
       }
     }
   ```

1. Especifique um nome para a máquina de estado. Para fazer isso, clique no ícone de edição ao lado do nome da máquina de estado padrão **MyStateMachine**. Em seguida, em **Configuração da máquina de estado**, insira um nome na caixa **Nome da máquina de estado**.

   Para este tutorial, insira o nome **InlineMapDemo**.

1. (Opcional) Em **Configuração da máquina de estado**, especifique outras configurações do fluxo de trabalho, como o tipo de máquina de estado e a função de execução.

   Para este tutorial, mantenha todas as seleções padrão na **Configuração da máquina de estado**.

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

   Você também pode escolher **Exibir configurações do perfil** para voltar às **Configurações da máquina de estado**.
**nota**  
Se você excluir o perfil do IAM criado pelo Step Functions, não será possível recriá-lo posteriormente. Da mesma forma, se você modificar a função (por exemplo, removendo o Step Functions das entidades principais na política do IAM), o Step Functions não poderá restaurar as configurações originais dela posteriormente. 

## Etapa 4: Executar a máquina de estado
<a name="use-inline-map-sm-run"></a>

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 **InlineMapDemo**, escolha **Iniciar execução**.

1. Na caixa de diálogo **Iniciar execução**, faça o seguinte:

   1. (Opcional) Insira um nome de execução personalizado para substituir o padrão gerado.
**Nomes e registro em log não ASCII**  
O Step Functions aceita nomes de máquina de estado, execuções, atividades e rótulos que contenham caracteres não ASCII. Como esses caracteres não permitem que o Amazon CloudWatch registre dados em log, recomendamos usar somente caracteres ASCII para monitorar as métricas do Step Functions.

   1. (Opcional) No campo **Entrada**, insira os valores de entrada no formato JSON para executar o fluxo de trabalho.

   1. Selecione **Iniciar execução**.

   1. O console do Step Functions direciona você para uma página na qual o título é o ID da execução, conhecida como a página de *Detalhes da execução*. Você pode revisar os resultados da execução tanto à medida que o fluxo de trabalho avança quanto 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](concepts-view-execution-details.md#exec-details-intf-step-details) 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](concepts-view-execution-details.md#exec-details-interface-overview).

   Para visualizar a entrada e a saída da execução lado a lado, escolha **Execution input and output**. (Entrada e saída de execução). Em **Saída**, veja a matriz de saída retornada pelo estado `Map`. A seguir, veja um exemplo de matriz de saída:

   ```
   [
     "a85cbc7b-4e65-4ac2-97af-80ed504adc1d",
     "b05bca11-d481-414e-aa9a-88285ec6590d",
     "f42d59f7-bd32-480f-b270-caddb518ce2a",
     "15f18616-517d-4b69-b7c3-bf22222d2efd",
     "690bcfee-6d58-408c-a6b4-1995ccafdbd2"
   ]
   ```