

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Ejecución de una canalización
<a name="run-pipeline"></a>

Tras definir los pasos de la canalización como un gráfico acíclico dirigido (DAG), puede ejecutar la canalización, que realiza los pasos definidos en el DAG. En los siguientes tutoriales, se muestra cómo ejecutar una canalización de Amazon SageMaker AI mediante el editor drag-and-drop visual de Amazon SageMaker Studio o el SDK de Amazon SageMaker Python.

## Ejecución de una canalización (diseñador de canalizaciones)
<a name="run-pipeline-designer"></a>

Para iniciar una nueva ejecución de la canalización, haga lo siguiente:

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

1. Abre SageMaker Studio siguiendo las instrucciones de [Launch Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html).

1. En el panel de navegación izquierdo, seleccione **Canalizaciones**.

1. (Opcional) Para filtrar la lista de canalizaciones por nombre, escriba un nombre de canalización total o parcial en el campo de búsqueda.

1. Seleccione un nombre de canalización para abrir la vista de detalles de la canalización.

1. Seleccione **Editor visual** en la parte superior derecha.

1. Para iniciar una ejecución desde la última versión, seleccione **Ejecuciones**.

1. Para iniciar una ejecución desde una versión específica, siga estos pasos:
   + Seleccione el icono de la versión en la barra de herramientas inferior para abrir el panel de versiones.
   + Elija la versión de canalización que desea ejecutar.
   + Coloque el cursor sobre el elemento de la versión para ver el menú de tres puntos y seleccione **Ejecutar**.
   + (Opcional) Para ver una versión previa de la canalización, seleccione **Vista previa** en el menú de tres puntos del panel de versiones. También puede editar la versión seleccionando **Editar** en la barra de notificaciones.

**nota**  
Si la canalización produce un error, el banner de estado mostrará el estado **Error**. Tras solucionar el error del paso, elija **Reintentar** en el banner de estado para reanudar la ejecución de la canalización a partir de ese paso.

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

1. Inicia sesión en Amazon SageMaker Studio Classic. Para obtener más información, consulte [Lanzamiento de Amazon SageMaker Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html).

1. En la barra lateral de Studio Classic, seleccione el icono de **Inicio** (![](http://docs.aws.amazon.com/es_es/sagemaker/latest/dg/images/studio/icons/house.png)).

1. Seleccione **Canalizaciones** en el menú.

1. Para filtrar la lista de canalizaciones por nombre, escriba un nombre de canalización total o parcial en el campo de búsqueda.

1. Seleccione un nombre de canalización.

1. En la pestaña **Ejecuciones** o **Gráfico** de la lista de ejecuciones, elija **Crear ejecución**.

1. Ingrese o actualice la siguiente información obligatoria:
   + **Name**: el nombre debe ser único para su cuenta en la región de AWS .
   + **ProcessingInstanceCount**— El número de instancias que se van a utilizar para el procesamiento.
   + **ModelApprovalStatus**— Para su comodidad.
   + **InputDataUrl**— El URI de Amazon S3 de los datos de entrada.

1. Elija **Iniciar**.

Una vez que la canalización esté en ejecución, puede ver los detalles de la ejecución seleccionando **Ver detalles** en el banner de estado.

Para detener la ejecución, elija **Detener** en el banner de estado. Para reanudar la ejecución desde donde se detuvo, elija **Reanudar** en el banner de estado.

**nota**  
Si la canalización produce un error, el banner de estado mostrará el estado **Error**. Tras solucionar el error del paso, elija **Reintentar** en el banner de estado para reanudar la ejecución de la canalización a partir de ese paso.

------

## Ejecutar una canalización (SDK de SageMaker Python)
<a name="run-pipeline-sdk"></a>

Una vez que hayas creado una definición de canalización con el SDK de Python para SageMaker IA, puedes enviarla a SageMaker AI para iniciar la ejecución. El siguiente tutorial muestra cómo enviar una canalización, iniciar una ejecución, examinar los resultados de esa ejecución y eliminar la canalización. 

**Topics**
+ [Requisitos previos](#run-pipeline-prereq)
+ [Paso 1: Iniciar la canalización](#run-pipeline-submit)
+ [Paso 2: Examinar la ejecución de una canalización](#run-pipeline-examine)
+ [Paso 3: Anular los parámetros predeterminados para la ejecución de una canalización](#run-pipeline-parametrized)
+ [Paso 4: Detener y eliminar la ejecución de una canalización](#run-pipeline-delete)

### Requisitos previos
<a name="run-pipeline-prereq"></a>

Este tutorial requiere lo siguiente: 
+  Una instancia de SageMaker bloc de notas.  
+  Una definición de canalización de Canalizaciones. En este tutorial se supone que utilizará la definición de canalización creada al completar el tutorial [Definición de una canalización](define-pipeline.md). 

### Paso 1: Iniciar la canalización
<a name="run-pipeline-submit"></a>

En primer lugar, es preciso iniciar la canalización. 

**Para iniciar la canalización**

1. Examine la definición de canalización de JSON para asegurarse de que esté bien formada.

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

1. Envíe la definición de canalización al servicio de Canalizaciones para crear una canalización si no existe, o actualice la canalización si existe. Canalizaciones utiliza el rol que se pasa para crear todos los trabajos definidos en los pasos. 

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

1. Inicie la ejecución de la canalización.

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

### Paso 2: Examinar la ejecución de una canalización
<a name="run-pipeline-examine"></a>

A continuación, debe examinar la ejecución de la canalización. 

**Para examinar la ejecución de una canalización**

1.  Describa el estado de ejecución de la canalización para asegurarse de que se ha creado e iniciado correctamente.

   ```
   execution.describe()
   ```

1. Espere a que finalice la ejecución. 

   ```
   execution.wait()
   ```

1. Enumere los pasos de ejecución y su estado.

   ```
   execution.list_steps()
   ```

   El resultado debería tener el siguiente aspecto:

   ```
   [{'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. Una vez finalizada la ejecución de la canalización, descargue el archivo `evaluation.json` resultante de Amazon S3 para examinar el informe. 

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

### Paso 3: Anular los parámetros predeterminados para la ejecución de una canalización
<a name="run-pipeline-parametrized"></a>

Puede ejecutar más ejecuciones de la canalización si especifica distintos parámetros de canalización para anular los valores predeterminados.

**Para anular los parámetros predeterminados**

1. Cree la ejecución de la canalización. Esto inicia otra ejecución de la canalización con la anulación del estado de aprobación del modelo establecida en “Aprobado”. Esto significa que la versión del paquete modelo generada por el `RegisterModel` paso está lista automáticamente para su despliegue a través de CI/CD procesos, como en el caso de los SageMaker proyectos. Para obtener más información, consulte [MLOps Automatización con SageMaker proyectos](sagemaker-projects.md).

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

1. Espere a que finalice la ejecución. 

   ```
   execution.wait()
   ```

1. Enumere los pasos de ejecución y su estado.

   ```
   execution.list_steps()
   ```

1. Una vez finalizada la ejecución de la canalización, descargue el archivo `evaluation.json` resultante de Amazon S3 para examinar el informe. 

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

### Paso 4: Detener y eliminar la ejecución de una canalización
<a name="run-pipeline-delete"></a>

Cuando termine con la canalización, puede detener cualquier ejecución en curso y eliminar la canalización.

**Para detener y eliminar la ejecución de una canalización**

1. Detenga la ejecución de la canalización.

   ```
   execution.stop()
   ```

1. Elimine la canalización.

   ```
   pipeline.delete()
   ```