Creazione di una pipeline

Creare una pipeline di Data Science per eseguire un task.

Assicurarsi di aver creato i criteri, l'autenticazione e l'autorizzazione necessari per le pipeline.

Importante

Per il corretto funzionamento dei passi script, assicurarsi di aver aggiunto la regola seguente a un criterio gruppo dinamico:

all {resource.type='datasciencepipelinerun', resource.compartment.id='<pipeline-run-compartment-ocid>'}

Prima di iniziare:

Puoi creare pipeline utilizzando l'SDK ADS, la console OCI o l'SDK OCI.

L'uso di ADS per la creazione di pipeline può semplificare lo sviluppo della pipeline, dei passi e delle dipendenze. ADS supporta la lettura e la scrittura della pipeline da e verso un file YAML. È possibile utilizzare ADS per visualizzare una rappresentazione visiva della pipeline. Si consiglia di utilizzare ADS per creare e gestire la pipeline utilizzando il codice.

    1. Nella pagina Pipeline, selezionare Crea pipeline. Per assistenza nella ricerca della lista di pipeline, vedere Elenco di pipeline.
    2. (Facoltativo) Selezionare un compartimento diverso per la pipeline.
    3. (Facoltativo) Immettere un nome e una descrizione per la pipeline (limite di 255 caratteri). Se non si specifica un nome, viene generato automaticamente un nome.

      Ad esempio, pipeline2022808222435.

    4. Selezionare Aggiungi passi pipeline per iniziare a definire il workflow per la pipeline.
    5. Nel pannello Aggiungi passo pipeline selezionare una delle opzioni riportate di seguito, quindi completare la creazione della pipeline.
    Da un progetto

    Da un job

    Il passo della pipeline utilizza un job esistente. Selezionare uno dei job nella tenancy.

    1. Immettere un nome univoco per il passo. Impossibile ripetere un nome di passo in una pipeline.
    2. (Facoltativo) Immettere una descrizione del passo che consenta di individuare le dipendenze del passo.
    3. (Facoltativo) Se questo passo dipende da un altro passo, selezionare uno o più passi da eseguire prima di questo passo.
    4. Selezionare il job per il passo da eseguire.
    5. (Facoltativo) Immettere o selezionare uno dei seguenti valori per controllare questo passo della pipeline:
      Chiave e valore variabili di ambiente personalizzati

      Le variabili di ambiente per questo passo della pipeline.

      Value

      Il valore della chiave della variabile d'ambiente personalizzata.

      È possibile selezionare Chiave di ambiente personalizzata aggiuntiva per specificare più variabili.

      Argomenti riga di comando

      Gli argomenti della riga di comando che si desidera utilizzare per eseguire il passo della pipeline.

      Tempo di runtime massimo (in minuti)

      Il numero massimo di minuti consentiti per l'esecuzione del passo della pipeline. Il servizio annulla l'esecuzione della pipeline se il relativo runtime supera il valore specificato. Il runtime massimo è di 30 giorni (43.200 minuti). Si consiglia di configurare un runtime massimo su tutte le esecuzioni della pipeline per evitare esecuzioni di pipeline con runaway.

    6. Selezionare Salva per aggiungere il passo e tornare alla pagina Crea pipeline.
    7. (Facoltativo) Selezionare +Add passi della pipeline per aggiungere altri passi per completare il workflow e ripetere i passi precedenti.
    8. (Facoltativo) Creare una configurazione pipeline predefinita utilizzata quando la pipeline viene eseguita immettendo la variabile di ambiente, gli argomenti della riga di comando e le opzioni di runtime massime. Per una spiegazione di questi campi, vedere il passo 5.
    9. (Facoltativo) Selezionare una forma di computazione selezionando Seleziona e attenendosi alla procedura riportata di seguito.
      1. Selezionare un tipo di istanza.
      2. Selezionare una serie di forme.
      3. Selezionare una delle forme di computazione supportate della serie.
      4. Selezionare la forma più adatta a come si desidera utilizzare la risorsa. Per la forma AMD, è possibile utilizzare l'impostazione predefinita o impostare il numero di OCPU e memoria.

        Per ciascuna OCPU, selezionare fino a 64 GB di memoria e un totale massimo di 512 GB. La quantità minima di memoria consentita è 1 GB o un valore corrispondente al numero di OCPU, a seconda di quale delle due è maggiore.

      5. Selezionare Seleziona forma.
    10. Per lo storage a blocchi, immettere la quantità di storage che si desidera utilizzare tra 50 GB e 10, 240 GB (10 TB). È possibile modificare il valore con incrementi di 1 GB. Il valore predefinito è 100 GB.
    11. (Facoltativo) Per utilizzare il log, selezionare Seleziona, quindi assicurarsi che l'opzione Abilita log sia selezionata.
      1. Selezionare un gruppo di log dalla lista. È possibile passare a un compartimento diverso per specificare un gruppo di log in un compartimento diverso dal job.
      2. Selezionare una delle opzioni riportate di seguito per memorizzare tutti i messaggi stdout e stderr.
        Abilita creazione automatica log

        Data Science crea automaticamente un log all'avvio del job.

        Selezionare un log

        Selezionare il log da utilizzare.

      3. Selezionare Seleziona per tornare alla pagina di creazione dell'esecuzione del job.
    12. (Facoltativo) Selezionare Mostra opzioni avanzate per aggiungere tag alla pipeline.
    13. (Facoltativo) Nella sezione Tag aggiungere una o più tag a <resourceType>. Se si dispone delle autorizzazioni per creare una risorsa, si dispone anche delle autorizzazioni per applicare le tag in formato libero a tale risorsa. Per applicare una tag definita, è necessario disporre delle autorizzazioni per utilizzare la tag namespace. Per ulteriori informazioni sull'applicazione di tag, vedere Tag risorsa. Se non si è certi di applicare le tag, saltare questa opzione o chiedere a un amministratore. È possibile applicare le tag in un secondo momento.
    14. Selezionare Crea.

      Una volta che lo stato della pipeline è attivo, è possibile utilizzare le esecuzioni della pipeline per eseguire ripetutamente la pipeline.

    Da uno script

    Da uno script

    Il passo utilizza uno script per l'esecuzione. È necessario caricare l'artifact contenente tutto il codice per il passo da eseguire.

    1. Immettere un nome univoco per il passo. Impossibile ripetere un nome di passo in una pipeline.
    2. (Facoltativo) Immettere una descrizione del passo che consenta di individuare le dipendenze del passo.
    3. (Facoltativo) Se questo passo dipende da un altro passo, selezionare uno o più passi da eseguire prima di questo passo.
    4. Trascinare un file del passo del job nella casella o selezionare selezionare un file per selezionarlo.
    5. In Punto di ingresso, selezionare un file da utilizzare come punto di esecuzione di ingresso del passo. Questa operazione è utile quando si dispone di più file.
    6. (Facoltativo) Immettere o selezionare uno dei seguenti valori per controllare questo passo della pipeline:
      Chiave e valore variabili di ambiente personalizzati

      Le variabili di ambiente per questo passo della pipeline.

      Value

      Il valore della chiave della variabile d'ambiente personalizzata.

      È possibile selezionare Chiave di ambiente personalizzata aggiuntiva per specificare più variabili.

      Argomenti riga di comando

      Gli argomenti della riga di comando che si desidera utilizzare per eseguire il passo della pipeline.

      Tempo di runtime massimo (in minuti)

      Il numero massimo di minuti consentiti per l'esecuzione del passo della pipeline. Il servizio annulla l'esecuzione della pipeline se il relativo runtime supera il valore specificato. Il runtime massimo è di 30 giorni (43.200 minuti). Si consiglia di configurare un runtime massimo su tutte le esecuzioni della pipeline per evitare esecuzioni di pipeline con runaway.

    7. (Facoltativo) Creare una configurazione pipeline predefinita utilizzata quando la pipeline viene eseguita immettendo la variabile di ambiente, gli argomenti della riga di comando e le opzioni di runtime massime. Per una spiegazione di questi campi, vedere il passo 6.
    8. Per lo storage a blocchi, immettere la quantità di storage che si desidera utilizzare tra 50 GB e 10, 240 GB (10 TB). È possibile modificare il valore con incrementi di 1 GB. Il valore predefinito è 100 GB.
    9. Selezionare Salva per aggiungere il passo e tornare alla pagina Crea pipeline.
    10. (Facoltativo) Utilizzare i passi della pipeline +Add per aggiungere altri passi per completare il workflow ripetendo i passi precedenti.
    11. (Facoltativo) Creare una configurazione pipeline predefinita utilizzata quando la pipeline viene eseguita immettendo la variabile di ambiente, gli argomenti della riga di comando e le opzioni di runtime massime. Per una spiegazione di questi campi, vedere il passo 6.
    12. Per lo storage a blocchi, immettere la quantità di storage che si desidera utilizzare tra 50 GB e 10, 240 GB (10 TB). È possibile modificare il valore con incrementi di 1 GB. Il valore predefinito è 100 GB.
    13. Selezionare una delle seguenti opzioni per configurare il tipo di rete:
      • Networking predefinito: il carico di lavoro viene collegato utilizzando una VNIC secondaria a una rete VCN e una subnet preconfigurata gestita dal servizio. Questa subnet fornita consente l'uscita alla rete Internet pubblica tramite un gateway NAT e l'accesso ad altri servizi Oracle Cloud tramite un gateway di servizi.

        Se hai bisogno di accedere solo alla rete Internet pubblica e ai servizi OCI, ti consigliamo di utilizzare questa opzione. Non richiede la creazione di risorse di rete o la scrittura di criteri per le autorizzazioni di rete.

      • Networking personalizzato: selezionare la VCN e la subnet che si desidera utilizzare per la risorsa (sessione o job del registro note).

        Per l'accesso in uscita alla rete Internet pubblica, utilizzare una subnet privata con un instradamento a un gateway NAT.

        Se non viene visualizzata la VCN o la subnet che si desidera utilizzare, selezionare Modifica compartimento, quindi selezionare il compartimento contenente la VCN o la subnet.

        Importante

        Per utilizzare un accesso allo storage di file, è necessario utilizzare la rete personalizzata.

    14. (Facoltativo) Per utilizzare il log, selezionare Seleziona, quindi assicurarsi che l'opzione Abilita log sia selezionata.
      1. Selezionare un gruppo di log dalla lista. È possibile passare a un compartimento diverso per specificare un gruppo di log in un compartimento diverso dal job.
      2. Selezionare una delle opzioni riportate di seguito per memorizzare tutti i messaggi stdout e stderr.
        Abilita creazione automatica log

        Data Science crea automaticamente un log all'avvio del job.

        Selezionare un log

        Selezionare il log da utilizzare.

      3. Selezionare Seleziona per tornare alla pagina di creazione dell'esecuzione del job.
    15. (Facoltativo) Selezionare Mostra opzioni avanzate per aggiungere tag alla pipeline.
    16. (Facoltativo) Nella sezione Tag aggiungere una o più tag a <resourceType>. Se si dispone delle autorizzazioni per creare una risorsa, si dispone anche delle autorizzazioni per applicare le tag in formato libero a tale risorsa. Per applicare una tag definita, è necessario disporre delle autorizzazioni per utilizzare la tag namespace. Per ulteriori informazioni sull'applicazione di tag, vedere Tag risorsa. Se non si è certi di applicare le tag, saltare questa opzione o chiedere a un amministratore. È possibile applicare le tag in un secondo momento.
    17. Selezionare Crea.

      Una volta che lo stato della pipeline è attivo, è possibile utilizzare le esecuzioni della pipeline per eseguire ripetutamente la pipeline.

    Da contenitore

    Da container

    Facoltativamente, quando si definiscono i passi della pipeline, è possibile scegliere di utilizzare Bring Your Own Container.
    1. Selezionare Da contenitore.
    2. Nella sezione Configurazione contenitore selezionare Configura.
    3. Nel pannello Configura ambiente contenitore selezionare un repository dall'elenco. Se il repository si trova in un compartimento diverso, selezionare Modifica compartimento.
    4. Selezionare un'immagine dalla lista.
    5. (Facoltativo) Immettere un punto di ingresso. Per aggiungerne un altro, selezionare +Add, parametro.
    6. (Facoltativo) Immettere un CMD. Per aggiungerne un altro, selezionare +Add, parametro.
      Utilizzare CMD come argomenti per ENTRYPOINT o l'unico comando da eseguire in assenza di un ENTRYPOINT.
    7. (Facoltativo) Immettere un digest di immagine.
    8. (Facoltativo) Se si utilizza la verifica della firma, immettere l'OCID della firma dell'immagine.
      Ad esempio, ocid1.containerimagesignature.oc1.iad.aaaaaaaaab....
    9. (Facoltativo) Caricare l'artifact del passo trascinandolo nella casella.
      Nota

      Questo passo è facoltativo solo se è configurato BYOC.
  • Queste variabili di ambiente controllano l'esecuzione della pipeline.

    È possibile utilizzare l'interfaccia CLI OCI per creare una pipeline come nell'esempio di Python riportato di seguito.

    1. Crea una pipeline:

      Nel payload sono disponibili i seguenti parametri:

      Nome parametro Richiesto descrizione;
      Pipeline (livello superiore)
      projectId Richiesto OCID progetto in cui creare la pipeline.
      compartmentId Richiesto OCID compartimento in cui creare la pipeline.
      displayName Facoltativo Il nome della pipeline.
      infrastructureConfigurationDetails Facoltativo

      Configurazione predefinita dell'infrastruttura (computazione) da utilizzare per tutti i passi della pipeline. Per i dettagli sui parametri supportati, vedere infrastructureConfigurationDetails.

      Può essere sostituito dalla configurazione dell'esecuzione della pipeline.

      logConfigurationDetails Facoltativo

      Log predefinito da utilizzare per tutti i passi della pipeline. Per i dettagli sui parametri supportati, vedere logConfigurationDetails.

      Può essere sostituito dalla configurazione dell'esecuzione della pipeline.

      configurationDetails Facoltativo

      Configurazione predefinita per l'esecuzione della pipeline. Per i dettagli sui parametri supportati, vedere configurationDetails.

      Può essere sostituito dalla configurazione dell'esecuzione della pipeline.

      freeformTags Facoltativo Tag da aggiungere alla risorsa pipeline.
      stepDetails
      stepName Richiesto Nome del passo. Deve essere univoco nella pipeline.
      description Facoltativo Descrizione di testo libero per il passo.
      stepType Richiesto CUSTOM_SCRIPT o ML_JOB
      jobId Richiesta* Per i passi ML_JOB, questo è l'OCID job da utilizzare per l'esecuzione del passo.
      stepInfrastructureConfigurationDetails Facoltativo*

      Configurazione predefinita dell'infrastruttura (computazione) da utilizzare per questo passo. Per i dettagli sui parametri supportati, vedere infrastructureConfigurationDetails.

      Può essere sostituito dalla configurazione dell'esecuzione della pipeline.

      *Deve essere definito su almeno un livello (precedenza basata sulla priorità, 1 è la più alta):

      1 esecuzione e/o

      2 passi e/o

      3 pipeline

      stepConfigurationDetails Facoltativo*

      Configurazione predefinita per l'esecuzione del passo. Per i dettagli sui parametri supportati, vedere configurationDetails.

      Può essere sostituito dalla configurazione dell'esecuzione della pipeline.

      *Deve essere definito su almeno un livello (precedenza basata sulla priorità, 1 è la più alta):

      1 esecuzione e/o

      2 passi e/o

      3 pipeline

      dependsOn Facoltativo Elenco di passi che devono essere completati prima dell'inizio di questo passo. In questo modo viene creato il grafico delle dipendenze del workflow pipeline.
      infrastructureConfigurationDetails
      shapeName Richiesto Nome della forma di computazione da utilizzare. Ad esempio, VM.Standard2.4.
      blockStorageSizeInGBs Richiesto Numero di GB da utilizzare come storage collegato per la VM.
      logConfigurationDetails
      enableLogging Richiesto Definire per utilizzare il log.
      logGroupId Richiesto OCID gruppo di log da utilizzare per i log. Il gruppo di log deve essere creato e disponibile quando viene eseguita la pipeline
      logId Facoltativo* OCID log da utilizzare per i log quando non si utilizza il parametro enableAutoLogCreation.
      enableAutoLogCreation Facoltativo Se l'impostazione è True, viene creato un log per ogni esecuzione della pipeline.
      configurationDetails
      type Richiesto È supportato solo DEFAULT.
      maximumRuntimeInMinutes Facoltativo Limite di tempo in minuti per l'esecuzione della pipeline.
      environmentVariables Facoltativo

      Variabili di ambiente da fornire per le esecuzioni dei passi della pipeline.

      Ad esempio:

      "environmentVariables": {
      
       "CONDA_ENV_TYPE": "service"
      
      }

      Esaminare l'elenco delle variabili d'ambiente supportate dal servizio.

      pipeline_payload = {
          "projectId": "<project_id>",
          "compartmentId": "<compartment_id>",
          "displayName": "<pipeline_name>",
          "pipelineInfrastructureConfigurationDetails": {
              "shapeName": "VM.Standard2.1",
              "blockStorageSizeInGBs": "50"
          },
          "pipelineLogConfigurationDetails": {
              "enableLogging": True,
              "logGroupId": "<log_group_id>",
              "logId": "<log_id>"
          },
          "pipelineDefaultConfigurationDetails": {
              "type": "DEFAULT",
              "maximumRuntimeInMinutes": 30,
              "environmentVariables": {
                  "CONDA_ENV_TYPE": "service",
                  "CONDA_ENV_SLUG": "classic_cpu"
              }
          },
          "stepDetails": [
              {
                  "stepName": "preprocess",
                  "description": "Preprocess step",
                  "stepType": "CUSTOM_SCRIPT",
                  "stepInfrastructureConfigurationDetails": {
                      "shapeName": "VM.Standard2.4",
                      "blockStorageSizeInGBs": "100"
                  },
                  "stepConfigurationDetails": {
                      "type": "DEFAULT",
                      "maximumRuntimeInMinutes": 90
                      "environmentVariables": {
                          "STEP_RUN_ENTRYPOINT": "preprocess.py",
                          "CONDA_ENV_TYPE": "service",
                          "CONDA_ENV_SLUG": "onnx110_p37_cpu_v1"
                  }
              },
              {
                  "stepName": "postprocess",
                  "description": "Postprocess step",
                  "stepType": "CUSTOM_SCRIPT",
                  "stepInfrastructureConfigurationDetails": {
                      "shapeName": "VM.Standard2.1",
                      "blockStorageSizeInGBs": "80"
                  },
                  "stepConfigurationDetails": {
                      "type": "DEFAULT",
                      "maximumRuntimeInMinutes": 60
                  },
                  "dependsOn": ["preprocess"]
              },
          ],
          "freeformTags": {
              "freeTags": "cost center"
          }
      }
      pipeline_res = dsc.create_pipeline(pipeline_payload)
      pipeline_id = pipeline_res.data.id

      Fino a quando non vengono caricati tutti gli artifact dei passi della pipeline, lo stato della pipeline è CREATING.

    2. Caricare un artifact passo:

      Una volta caricato, l'artifact non può essere modificato.

      fstream = open(<file_name>, "rb")
       
      dsc.create_step_artifact(pipeline_id, step_name, fstream, content_disposition=f"attachment; filename={<file_name>}")
    3. Aggiornare una pipeline:

      È possibile aggiornare una pipeline solo quando è in stato ACTIVE.

      update_pipeline_details = {
      "displayName": "pipeline-updated"
      }
      self.dsc.update_pipeline(<pipeline_id>, <update_pipeline_details>)
    4. Avvia esecuzione pipeline:
      pipeline_run_payload = {
      "projectId": project_id,
      "displayName": "pipeline-run",
      "pipelineId": <pipeline_id>,
      "compartmentId": <compartment_id>,
      }
      dsc.create_pipeline_run(pipeline_run_payload)
  • ADS SDK è anche una libreria Python disponibile pubblicamente che è possibile installare con questo comando:

    pip install oracle-ads

    Puoi utilizzare l'SDK ADS per creare ed eseguire le pipeline.

Rete personalizzata

Utilizzare una rete personalizzata già creata nella pipeline per offrire maggiore flessibilità alla rete.

Creazione di pipeline con la rete personalizzata

È possibile scegliere di utilizzare la rete personalizzata durante la creazione di una pipeline.

Nota

Il passaggio dalla rete personalizzata alla rete gestita non è supportato dopo la creazione della pipeline.
Suggerimento

Se viene visualizzato il banner, The specified subnet is not accessible. Select a different subnet. creare un criterio di accesso alla rete come descritto nella sezione, Criteri pipeline.

Utilizzo di Console

Selezionare per utilizzare la rete personalizzata nel pannello Crea pipeline.

Se si seleziona la rete predefinita, il sistema utilizza la rete gestita dal servizio esistente. Se si seleziona l'opzione di rete personalizzata, viene richiesto di selezionare una VCN e una subnet.

Selezionare la VCN e la subnet che si desidera utilizzare per la risorsa. Per l'accesso in uscita alla rete Internet pubblica, utilizzare una subnet privata con un instradamento a un gateway NAT. Se non viene visualizzata la VCN o la subnet che si desidera utilizzare, selezionare Modifica compartimento, quindi selezionare il compartimento contenente la VCN o la subnet.

Uso delle API

Fornire subnet-id nel file infrastructure-configuration-details per utilizzare una subnet personalizzata a livello di pipeline. Ad esempio:
"infrastructure-configuration-details": {
      "block-storage-size-in-gbs": 50,
      "shape-config-details": {
        "memory-in-gbs": 16.0,
        "ocpus": 1.0
      },
      "shape-name": "VM.Standard.E4.Flex",
      "subnet-id": "ocid1.subnet.oc1.iad.aaaaaaaa5lzzq3fyypo6x5t5egplbfyxf2are6k6boop3vky5t4h7g35xkoa"
}
Oppure, nei dettagli di configurazione del container passo per utilizzare una subnet personalizzata per un determinato passo. Ad esempio:
"step-infrastructure-configuration-details": {
          "block-storage-size-in-gbs": 50,
          "shape-config-details": {
            "memory-in-gbs": 16.0,
            "ocpus": 1.0
          },
          "shape-name": "VM.Standard.E4.Flex",
          "subnet-id": "ocid1.subnet.oc1.iad.aaaaaaaa5lzzq3fyypo6x5t5egplbfyxf2are6k6boop3vky5t4h7g35xkoa"
},