

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

# Prosseguir com fluxos de trabalho de longa duração usando a API do Step Functions (recomendado)
<a name="tutorial-continue-new"></a>

AWS Step Functions foi projetado para executar fluxos de trabalho com duração e número de etapas finitos. As execuções do fluxo de trabalho padrão têm uma duração máxima de um ano e um máximo de 25 mil eventos (consulte [Cotas de serviço do Step Functions](service-quotas.md)).

Em relação a execuções de longa duração, é possível evitar atingir a cota rígida iniciando uma nova execução de fluxo de trabalho a partir do estado `Task`. É necessário dividir os fluxos de trabalho em máquinas de estado menores que continuam o trabalho em andamento em uma nova execução.

Para iniciar novas execuções de fluxo de trabalho, chame a ação de API `StartExecution` do estado `Task` e transmita os parâmetros necessários.

O Step Functions pode iniciar essas execuções de fluxo de trabalho chamando a própria API como um [serviço integrado](integrate-services.md). Recomendamos que você adote essa abordagem para evitar exceder as service quotas para execuções de longa duração.

## Etapa 1: Criar uma máquina de estado de execução longa
<a name="use-sfn-api-create-called-state-machine"></a>

Crie uma máquina de estado de longa duração que você deseja iniciar do estado `Task` de uma máquina de estado diferente. Para este tutorial, use a [máquina de estado que usa uma função do Lambda](tutorial-creating-lambda-state-machine.md).

**nota**  
Copie o nome e o Nome do recurso da Amazon dessa máquina de estado em um arquivo de texto para uso posterior.

## Etapa 2: Criar uma máquina de estado para chamar a ação da API do Step Functions
<a name="use-sfn-api-create-caller-state-machine"></a>

**Para iniciar execuções de fluxo de trabalho usando um estado `Task`**

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 **Ações**, arraste a ação da **StartExecution**API e solte-a no estado vazio chamado **Arraste o primeiro estado aqui**.

1. Escolha o **StartExecution**estado e faça o seguinte na guia **Configuração** em[Modo de design](workflow-studio.md#wfs-interface-design-mode):

   1. Renomeie o estado para **Start nested execution**.

   1. Em **Tipo de integração**, escolha **SDK AWS – novo** na lista suspensa.

   1. Em **Parâmetros da API**, faça o seguinte:

      1. Para `StateMachineArn`, substitua o nome de recurso da Amazon de amostra pelo ARN da sua máquina de estado. Por exemplo, insira o ARN da [máquina de estado que usa o Lambda](tutorial-creating-lambda-state-machine.md).

      1. Para o nó `Input`, substitua o texto do espaço reservado pelo seguinte valor:

         ```
         "Comment": "Starting workflow execution using a Step Functions API action"
         ```

      1. As entradas nos **Parâmetros da API** `devem ser semelhantes às seguintes:

         ```
         {
           "StateMachineArn": "arn:aws:states:us-east-2:123456789012:stateMachine:LambdaStateMachine",
           "Input": {
             "Comment": "Starting workflow execution using a Step Functions API action",
             "AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id"
           }
         ```

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](concepts-amazon-states-language.md) (ASL) 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.

1. Especifique um nome para a máquina de estado. Para fazer isso, escolha o ícone de edição ao lado do nome padrão da máquina de estado de **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 **ParentStateMachine**.

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 nas **Configurações da máquina de estado**.

   Se você [já criou um perfil do IAM](procedure-create-iam-role.md) com as permissões corretas para a máquina de estado e deseja usá-lo, em **Permissões**, clique em **Escolher um perfil existente** e selecione uma função na lista. Ou selecione **Inserir um ARN de função** e forneça o ARN para esse perfil do IAM.

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 3: Atualizar a política do IAM;
<a name="use-sfn-api-update-policy-start-execution"></a>

Para garantir que sua máquina de estado tenha permissões para iniciar a execução da [máquina de estado que usa uma função do Lambda](tutorial-creating-lambda-state-machine.md), você precisa anexar uma política em linha ao perfil do IAM da sua máquina de estado. Para mais informações, consulte [Incorporar políticas em linha](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html#embed-inline-policy-console) no *Guia do usuário do IAM*.

1. Na **ParentStateMachine**página, escolha o **ARN da função do IAM** para navegar até a página **Funções** do IAM da sua máquina de estado.

1. Atribua uma permissão apropriada à função IAM do **ParentStateMachine**para que ela possa iniciar a execução de outra máquina de estado. Para atribuir a permissão, faça o seguinte:

   1. Na página **Perfis** do IAM, escolha **Adicionar permissões** e depois **Criar política em linha**.

   1. Na página **Criar política**, escolha a guia **JSON**.

   1. Substitua o texto pela política a seguir.  
****  

      ```
      {
        "Version":"2012-10-17",		 	 	 
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "states:StartExecution"
                ],
                "Resource": [
                    "arn:aws:states:us-east-1:123456789012:stateMachine:LambdaStateMachine"
                ]
            }
        ]
      }
      ```

   1. Selecione **Revisar política**.

   1. Especifique um nome para a política e escolha **Criar política**.

## Etapa 4: Executar a máquina de estado
<a name="use-sfn-api-start-execution"></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 **ParentStateMachine**página, escolha **Iniciar execução**.

   A caixa de diálogo **Iniciar execução** é exibida.

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 impedirão que a Amazon CloudWatch registre dados, recomendamos usar somente caracteres ASCII para que você possa acompanhar 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 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](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).

1. Abra a **LambdaStateMachine**página e observe uma nova execução acionada pelo **ParentStateMachine**.