

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

# Execute um pipeline
<a name="run-pipeline"></a>

Depois de definir as etapas do pipeline como um gráfico acíclico direcionado (DAG), você pode executar o pipeline, o que executa as etapas definidas no DAG. As instruções a seguir mostram como executar um pipeline de SageMaker IA da Amazon usando o editor drag-and-drop visual no Amazon SageMaker Studio ou o SDK do Amazon Python SageMaker .

## Executar um pipeline (Pipeline Designer)
<a name="run-pipeline-designer"></a>

Para iniciar uma nova execução de pipeline, faça o seguinte:

------
#### [ Studio ]

1. Abra o SageMaker Studio seguindo as instruções em [Iniciar o Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html).

1. No painel de navegação à esquerda, selecione **Pipelines**.

1. (Opcional) Para filtrar a lista de pipelines por nome, digite um nome de pipeline completo ou parcial no campo de pesquisa.

1. Selecione um nome de pipeline para abrir a respectiva visualização de detalhes.

1. Escolha **Editor visual** no canto superior direito.

1. Para iniciar uma execução por meio da versão mais recente, escolha **Execuções**.

1. Para iniciar a execução por meio de uma versão específica, siga estas etapas:
   + Escolha o ícone da versão na barra de ferramentas inferior para abrir o painel da versão.
   + Escolha a versão do pipeline que deseja executar.
   + Passe o mouse sobre o item da versão para revelar o menu de três pontos e escolha **Executar**.
   + (Opcional) Para visualizar uma versão anterior do pipeline, escolha **Visualizar** no menu de três pontos no painel de versão. Você também pode editar a versão escolhendo **Editar** na barra de notificação.

**nota**  
Se seu pipeline falhar, o banner de status mostrará o status **Falha**. Depois de solucionar a falha na etapa, escolha **Tentar novamente** no banner de status para retomar a execução do pipeline a partir dessa etapa.

------
#### [ Studio Classic ]

1. Faça login no Amazon SageMaker Studio Classic. Para obter mais informações, consulte [Launch Amazon SageMaker Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html).

1. Na barra lateral do Studio Classic, escolha o ícone **Início** (![](http://docs.aws.amazon.com/pt_br/sagemaker/latest/dg/images/studio/icons/house.png)).

1. Selecione **Pipelines** no menu.

1. Para restringir a lista de pipelines por nome, insira um nome de pipeline completo ou parcial no campo de pesquisa.

1. Selecione um nome de pipeline.

1. Na aba **Execuções** ou **Gráfico** na lista de execução, escolha **Criar execução**.

1. Insira ou atualize as seguintes informações obrigatórias:
   + **Name**: Deve ser único na sua conta em uma Região da AWS .
   + **ProcessingInstanceCount**— O número de instâncias a serem usadas para processamento.
   + **ModelApprovalStatus**— Para sua conveniência.
   + **InputDataUrl**— O URI do Amazon S3 dos dados de entrada.

1. Escolha **Iniciar**.

Depois que seu pipeline estiver em execução, você poderá visualizar os detalhes da execução escolhendo **Exibir detalhes** no banner de status.

Para interromper a execução, escolha **Parar** no banner de status. Para retomar a execução de onde ela foi interrompida, escolha **Retomar** no banner de status.

**nota**  
Se seu pipeline falhar, o banner de status mostrará o status **Falha**. Depois de solucionar a falha na etapa, escolha **Tentar novamente** no banner de status para retomar a execução do pipeline a partir dessa etapa.

------

## Execute um pipeline (SageMaker Python SDK)
<a name="run-pipeline-sdk"></a>

Depois de criar uma definição de pipeline usando o SDK do SageMaker AI Python, você pode enviá-la à SageMaker AI para iniciar sua execução. O tutorial a seguir mostra como enviar um pipeline, iniciar uma execução, examinar os resultados dessa execução e excluir seu pipeline. 

**Topics**
+ [Pré-requisitos](#run-pipeline-prereq)
+ [Etapa 1: iniciar o pipeline](#run-pipeline-submit)
+ [Etapa 2: examinar a execução de um pipeline](#run-pipeline-examine)
+ [Etapa 3: substituir parâmetros padrão para a execução de um pipeline](#run-pipeline-parametrized)
+ [Etapa 4: interromper e excluir a execução de um pipeline](#run-pipeline-delete)

### Pré-requisitos
<a name="run-pipeline-prereq"></a>

Este tutorial requer o seguinte: 
+  Uma instância de SageMaker notebook.  
+  Uma definição de pipeline do Pipelines. Este tutorial pressupõe que você esteja usando a definição de pipeline criada ao concluir o tutorial [Definir um pipeline](define-pipeline.md). 

### Etapa 1: iniciar o pipeline
<a name="run-pipeline-submit"></a>

Primeiro, você precisa iniciar o pipeline. 

**Para iniciar o pipeline**

1. Examine a definição do pipeline JSON para garantir que ela esteja bem formada.

   ```
   import json
   
   json.loads(pipeline.definition())
   ```

1. Envie a definição do pipeline ao serviço do Pipelines para criar um pipeline, caso ele não exista, ou atualizar o pipeline, caso exista. A função transmitida é usada pelo Pipelines para criar todos os trabalhos definidos nas etapas. 

   ```
   pipeline.upsert(role_arn=role)
   ```

1. Inicie a execução de um pipeline.

   ```
   execution = pipeline.start()
   ```

### Etapa 2: examinar a execução de um pipeline
<a name="run-pipeline-examine"></a>

Em seguida, você precisa examinar a execução do pipeline. 

**Para examinar a execução de um pipeline**

1.  Descreva o status de execução do pipeline para garantir que ele tenha sido criado e iniciado com sucesso.

   ```
   execution.describe()
   ```

1. Aguarde o término da execução. 

   ```
   execution.wait()
   ```

1. Liste as etapas de execução e seu status.

   ```
   execution.list_steps()
   ```

   A saída será semelhante a:

   ```
   [{'StepName': 'AbaloneTransform',
     'StartTime': datetime.datetime(2020, 11, 21, 2, 41, 27, 870000, tzinfo=tzlocal()),
     'EndTime': datetime.datetime(2020, 11, 21, 2, 45, 50, 492000, tzinfo=tzlocal()),
     'StepStatus': 'Succeeded',
     'CacheHitResult': {'SourcePipelineExecutionArn': ''},
     'Metadata': {'TransformJob': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:transform-job/pipelines-cfvy1tjuxdq8-abalonetransform-ptyjoef3jy'}}},
    {'StepName': 'AbaloneRegisterModel',
     'StartTime': datetime.datetime(2020, 11, 21, 2, 41, 26, 929000, tzinfo=tzlocal()),
     'EndTime': datetime.datetime(2020, 11, 21, 2, 41, 28, 15000, tzinfo=tzlocal()),
     'StepStatus': 'Succeeded',
     'CacheHitResult': {'SourcePipelineExecutionArn': ''},
     'Metadata': {'RegisterModel': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:model-package/abalonemodelpackagegroupname/1'}}},
    {'StepName': 'AbaloneCreateModel',
     'StartTime': datetime.datetime(2020, 11, 21, 2, 41, 26, 895000, tzinfo=tzlocal()),
     'EndTime': datetime.datetime(2020, 11, 21, 2, 41, 27, 708000, tzinfo=tzlocal()),
     'StepStatus': 'Succeeded',
     'CacheHitResult': {'SourcePipelineExecutionArn': ''},
     'Metadata': {'Model': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:model/pipelines-cfvy1tjuxdq8-abalonecreatemodel-jl94rai0ra'}}},
    {'StepName': 'AbaloneMSECond',
     'StartTime': datetime.datetime(2020, 11, 21, 2, 41, 25, 558000, tzinfo=tzlocal()),
     'EndTime': datetime.datetime(2020, 11, 21, 2, 41, 26, 329000, tzinfo=tzlocal()),
     'StepStatus': 'Succeeded',
     'CacheHitResult': {'SourcePipelineExecutionArn': ''},
     'Metadata': {'Condition': {'Outcome': 'True'}}},
    {'StepName': 'AbaloneEval',
     'StartTime': datetime.datetime(2020, 11, 21, 2, 37, 34, 767000, tzinfo=tzlocal()),
     'EndTime': datetime.datetime(2020, 11, 21, 2, 41, 18, 80000, tzinfo=tzlocal()),
     'StepStatus': 'Succeeded',
     'CacheHitResult': {'SourcePipelineExecutionArn': ''},
     'Metadata': {'ProcessingJob': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:processing-job/pipelines-cfvy1tjuxdq8-abaloneeval-zfraozhmny'}}},
    {'StepName': 'AbaloneTrain',
     'StartTime': datetime.datetime(2020, 11, 21, 2, 34, 55, 867000, tzinfo=tzlocal()),
     'EndTime': datetime.datetime(2020, 11, 21, 2, 37, 34, 34000, tzinfo=tzlocal()),
     'StepStatus': 'Succeeded',
     'CacheHitResult': {'SourcePipelineExecutionArn': ''},
     'Metadata': {'TrainingJob': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:training-job/pipelines-cfvy1tjuxdq8-abalonetrain-tavd6f3wdf'}}},
    {'StepName': 'AbaloneProcess',
     'StartTime': datetime.datetime(2020, 11, 21, 2, 30, 27, 160000, tzinfo=tzlocal()),
     'EndTime': datetime.datetime(2020, 11, 21, 2, 34, 48, 390000, tzinfo=tzlocal()),
     'StepStatus': 'Succeeded',
     'CacheHitResult': {'SourcePipelineExecutionArn': ''},
     'Metadata': {'ProcessingJob': {'Arn': 'arn:aws:sagemaker:us-east-2:111122223333:processing-job/pipelines-cfvy1tjuxdq8-abaloneprocess-mgqyfdujcj'}}}]
   ```

1. Depois que a execução do pipeline for concluída, baixe o arquivo `evaluation.json` resultante do Amazon S3 para examinar o relatório. 

   ```
   evaluation_json = sagemaker.s3.S3Downloader.read_file("{}/evaluation.json".format(
       step_eval.arguments["ProcessingOutputConfig"]["Outputs"][0]["S3Output"]["S3Uri"]
   ))
   json.loads(evaluation_json)
   ```

### Etapa 3: substituir parâmetros padrão para a execução de um pipeline
<a name="run-pipeline-parametrized"></a>

Você pode executar execuções adicionais do pipeline especificando diferentes parâmetros do pipeline para substituir os padrões.

**Para substituir os parâmetros padrão**

1. Crie a execução do pipeline. Isso inicia outra execução do pipeline com a substituição do status de aprovação do modelo definido como “Aprovado”. Isso significa que a versão do pacote de modelo gerada pela `RegisterModel` etapa está automaticamente pronta para implantação por meio de CI/CD pipelines, como com SageMaker Projetos. Para obter mais informações, consulte [MLOps Automação com SageMaker projetos](sagemaker-projects.md).

   ```
   execution = pipeline.start(
       parameters=dict(
           ModelApprovalStatus="Approved",
       )
   )
   ```

1. Aguarde o término da execução. 

   ```
   execution.wait()
   ```

1. Liste as etapas de execução e seu status.

   ```
   execution.list_steps()
   ```

1. Depois que a execução do pipeline for concluída, baixe o arquivo `evaluation.json` resultante do Amazon S3 para examinar o relatório. 

   ```
   evaluation_json = sagemaker.s3.S3Downloader.read_file("{}/evaluation.json".format(
       step_eval.arguments["ProcessingOutputConfig"]["Outputs"][0]["S3Output"]["S3Uri"]
   ))
   json.loads(evaluation_json)
   ```

### Etapa 4: interromper e excluir a execução de um pipeline
<a name="run-pipeline-delete"></a>

Ao concluir seu pipeline, você pode interromper qualquer execução em andamento e excluir o pipeline.

**Para interromper e excluir a execução de um pipeline**

1. Interrompa a execução do pipeline.

   ```
   execution.stop()
   ```

1. Exclua o pipeline.

   ```
   pipeline.delete()
   ```