

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Esecuzione di una pipeline
<a name="run-pipeline"></a>

Dopo aver definito le fasi della pipeline come grafo aciclico orientato (DAG), puoi avviare la pipeline, che esegue le fasi definite nel DAG. Le seguenti procedure dettagliate mostrano come eseguire una pipeline Amazon SageMaker AI utilizzando l'editor visivo drag-and-drop di Amazon Studio SageMaker o l'SDK Amazon Python. SageMaker 

## Esecuzione di una pipeline (Pipeline Designer)
<a name="run-pipeline-designer"></a>

Per iniziare una nuova esecuzione della pipeline, procedi come descritto di seguito:

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

1. Apri SageMaker Studio seguendo le istruzioni in [Launch Amazon SageMaker Studio](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-updated-launch.html).

1. Nel riquadro di navigazione a sinistra, seleziona **Pipelines** (Pipeline).

1. (Facoltativo) Per filtrare l’elenco delle pipeline per nome, digita il nome completo o parziale di una pipeline nel campo di ricerca.

1. Scegli il nome di una pipeline per visualizzarne i dettagli.

1. Scegli **Editor visivo** in alto a destra.

1. Per avviare un’esecuzione dalla versione più recente, scegli **Esecuzioni**.

1. Per avviare un’esecuzione da una versione specifica, procedi come descritto di seguito:
   + Scegli l’icona della versione nella barra degli strumenti in basso per aprire il pannello della versione.
   + Scegli la versione della pipeline da eseguire.
   + Passa il mouse sulla voce della versione per visualizzare il menu con tre puntini, quindi seleziona **Esegui**.
   + (Facoltativo) Per visualizzare una versione precedente della pipeline, scegli **Anteprima** dal menu con tre puntini nel pannello delle versioni. Puoi anche modificare la versione scegliendo **Modifica** nella barra delle notifiche.

**Nota**  
Se la pipeline non riesce, il banner di stato mostrerà lo stato **Non riuscito**. Dopo aver risolto il problema relativo alla fase non riuscita, scegli **Riprova** nel banner che indica lo stato per riprendere l'esecuzione della pipeline da quella fase.

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

1. Accedi ad Amazon SageMaker Studio Classic. Per ulteriori informazioni, consulta [Launch Amazon SageMaker Studio Classic](https://docs.aws.amazon.com/sagemaker/latest/dg/studio-launch.html).

1. Nella barra laterale di Studio Classic, scegli l’icona **Home** (![Black square icon representing a placeholder or empty image.](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/studio/icons/house.png)).

1. Seleziona **Pipeline** dal menu.

1. Per limitare l’elenco delle pipeline per nome, inserisci un nome completo o parziale della pipeline nel campo di ricerca.

1. Seleziona il nome di una pipeline.

1. Dalla scheda **Esecuzioni** o **Grafico** dell'elenco delle esecuzioni, scegli **Crea esecuzione**.

1. Inserisci o aggiorna le seguenti informazioni necessarie:
   + **Nome**: il nome deve essere univoco per l’account nella Regione AWS .
   + **ProcessingInstanceCount**— Il numero di istanze da utilizzare per l'elaborazione.
   + **ModelApprovalStatus**— Per comodità dell'utente.
   + **InputDataUrl**— L'URI Amazon S3 dei dati di input.

1. Scegli **Avvia**.

Una volta che la pipeline è in esecuzione, puoi visualizzare i dettagli dell’esecuzione scegliendo **Visualizza dettagli** nel banner di stato.

Per arrestare l’esecuzione, scegli **Arresta** nel banner di stato. Per riprendere l'esecuzione dal punto in cui era stata interrotta, scegli **Riprendi** nel banner che indica lo stato.

**Nota**  
Se la pipeline non riesce, il banner di stato mostrerà lo stato **Non riuscito**. Dopo aver risolto il problema relativo alla fase non riuscita, scegli **Riprova** nel banner che indica lo stato per riprendere l'esecuzione della pipeline da quella fase.

------

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

Dopo aver creato una definizione di pipeline utilizzando SageMaker AI Python SDK, puoi inviarla SageMaker all'IA per avviare l'esecuzione. Il seguente tutorial mostra come inviare una pipeline, avviare un'esecuzione, esaminare i risultati di tale esecuzione ed eliminare la pipeline. 

**Topics**
+ [Prerequisiti](#run-pipeline-prereq)
+ [Fase 1: avvio della pipeline](#run-pipeline-submit)
+ [Fase 2: esame dell'esecuzione di una pipeline](#run-pipeline-examine)
+ [Fase 3: sostituzione dei parametri predefiniti per l'esecuzione di una pipeline](#run-pipeline-parametrized)
+ [Fase 4: interruzione ed eliminazione dell'esecuzione di una pipeline](#run-pipeline-delete)

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

Questo tutorial richiede quanto segue: 
+  Un' SageMaker istanza di notebook.  
+  Una definizione della pipeline Pipelines. Questo tutorial presuppone che tu stia utilizzando la definizione della pipeline creata completando il tutorial [Definizione di una pipeline](define-pipeline.md). 

### Fase 1: avvio della pipeline
<a name="run-pipeline-submit"></a>

Per prima cosa dovrai avviare la pipeline. 

**Per avviare la pipeline**

1. Esamina la definizione della pipeline JSON per assicurarti che sia ben formata.

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

1. Invia la definizione della pipeline al servizio Pipelines per creare una pipeline se non esiste o aggiornarla se esiste. Il ruolo passato viene utilizzato da Pipelines per creare tutti i processi definiti nelle fasi. 

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

1. Avvio dell'esecuzione di una pipeline.

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

### Fase 2: esame dell'esecuzione di una pipeline
<a name="run-pipeline-examine"></a>

Successivamente, è necessario esaminare l'esecuzione della pipeline. 

**Per esaminare l'esecuzione di una pipeline**

1.  Descrivi lo stato di esecuzione della pipeline per assicurarti che sia stata creata e avviata correttamente.

   ```
   execution.describe()
   ```

1. Attendi la fine dell'esecuzione. 

   ```
   execution.wait()
   ```

1. Elenca le fasi di esecuzione e il loro stato.

   ```
   execution.list_steps()
   ```

   L'aspetto dell'output deve essere simile al seguente:

   ```
   [{'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 volta completata l'esecuzione della pipeline, scarica il file  `evaluation.json`risultante da Amazon S3 per esaminare il report. 

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

### Fase 3: sostituzione dei parametri predefiniti per l'esecuzione di una pipeline
<a name="run-pipeline-parametrized"></a>

È possibile eseguire esecuzioni aggiuntive della pipeline specificando diversi parametri della pipeline per sovrascrivere i valori predefiniti.

**Per sovrascrivere i parametri predefiniti**

1. Crea l'esecuzione della pipeline. Ciò avvia un'altra esecuzione della pipeline con la sovrascrittura dello stato di approvazione del modello impostata su “Approvato”. Ciò significa che la versione del pacchetto modello generata dalla `RegisterModel` fase è automaticamente pronta per la distribuzione tramite CI/CD pipeline, ad esempio con SageMaker Projects. Per ulteriori informazioni, consulta [Automazione MLops con progetti SageMaker](sagemaker-projects.md).

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

1. Attendi la fine dell'esecuzione. 

   ```
   execution.wait()
   ```

1. Elenca le fasi di esecuzione e il loro stato.

   ```
   execution.list_steps()
   ```

1. Una volta completata l'esecuzione della pipeline, scarica il file  `evaluation.json`risultante da Amazon S3 per esaminare il report. 

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

### Fase 4: interruzione ed eliminazione dell'esecuzione di una pipeline
<a name="run-pipeline-delete"></a>

Quando hai terminato con la pipeline, puoi interrompere le esecuzioni in corso ed eliminare la pipeline.

**Per interropere ed eliminare l'esecuzione di una pipeline**

1. Interrompi l'esecuzione della pipeline.

   ```
   execution.stop()
   ```

1. Elimina la pipeline

   ```
   pipeline.delete()
   ```