Altri modi per eseguire i job

È possibile utilizzare i job in una miriade di modi diversi, ad esempio utilizzando ambienti conda e file zip.

Utilizzo di file tar compressi o zip

È possibile utilizzare i job per eseguire un intero progetto Python archiviato in un singolo file.

I file tar compressi o zip eseguiti come job possono utilizzare gli ambienti Conda del servizio Data Science e gli ambienti Conda personalizzati.

Per l'esecuzione del job, puntare al file di voce principale utilizzando la variabile di ambiente JOB_RUN_ENTRYPOINT. Questa variabile viene utilizzata solo con i job che utilizzano artifact di job tar compressi o zip.

Utilizzo di un ambiente Conda di Data Science

È possibile utilizzare uno degli ambienti Conda di Data Science inclusi nel servizio.

Un ambiente conda incapsula tutte le dipendenze Python di terze parti (ad esempio Numpy, Dask o XGBoost) richieste dall'esecuzione del job. Gli ambienti Conda di Data Science sono inclusi e gestiti nel servizio. Se non si specifica un ambiente Conda nell'ambito delle configurazioni di esecuzione dei job e dei job, non viene utilizzato un ambiente Conda perché non esiste un ambiente predefinito.

Il codice mansione è incorporato in un ambiente Conda di Data Science:

Mostra il modo in cui il codice job è incorporato in un Conda, una forma e un'esecuzione di job di Data Science. E la lumaca conda nella carta conda.

  1. Trovare il Conda di Data Science che si desidera utilizzare, quindi effettuare una selezione tra:
    • Da Oracle Enterprise Manager Console:

      1. In un progetto, creare una sessione notebook.

      2. Aprire la sessione notebook.

      3. Visualizzare gli ambienti Conda e selezionare il Conda Data Science che si desidera utilizzare.

      4. Copiare lo slug dell'ambiente Conda dalla scheda selezionata.

        Quando esegui un job con Conda di Data Science, non è necessario pubblicarlo nello storage degli oggetti. È necessario solo il valore dello slug conda.

        Suggerimento

        È possibile eseguire il test del codice in un notebook prima di eseguirlo come job.

    • Dalla lista di ambienti Data Science conda:

      1. Trovare il conda che si desidera utilizzare.

      2. Nella tabella copiare lo slug.

  2. Creare un job e aggiungere questa variabile di ambiente personalizzata per specificare il Conda di Data Science:
    CONDA_ENV_TYPE => "service"
    CONDA_ENV_SLUG = <service_conda_environment_slug>
  3. Avviare l'esecuzione di un job e, per utilizzare un ambiente Conda diverso per l'esecuzione del job, utilizzare le variabili di ambiente personalizzate per eseguire l'override della configurazione del job.

Utilizzo di un ambiente Conda personalizzato

È possibile utilizzare job di file tar compressi e zip con ambienti Conda personalizzati o ambienti Conda di Data Science.

Un ambiente conda incapsula tutte le dipendenze Python di terze parti (ad esempio Numpy, Dask o XGBoost) richieste dall'esecuzione del job. È possibile creare, pubblicare e gestire ambienti Conda personalizzati. Se non si specifica un ambiente Conda nell'ambito delle configurazioni di esecuzione dei job e dei job, non viene utilizzato un ambiente Conda perché non esiste un ambiente predefinito

Il codice mansione è incorporato in un ambiente Conda personalizzato, ad esempio:

Mostra il modo in cui il codice mansione è incorporato in un Conda, una forma e un'esecuzione job personalizzati. E la lumaca conda nella carta conda.

  1. Creare un ambiente Conda personalizzato.
  2. Pubblicarlo nello storage degli oggetti.
  3. Impostare i criteri che consentono all'esecuzione del job di accedere agli ambienti Conda pubblicati memorizzati nel bucket di storage degli oggetti della tenancy.
  4. Creare un job e impostare le seguenti variabili di ambiente (l'area è facoltativa se si trova nella stessa area dell'esecuzione del job):
    CONDA_ENV_TYPE => "published"
    CONDA_ENV_OBJECT_NAME => <full_path_object_storage_name>
    CONDA_ENV_REGION => <object_storage_region>
    CONDA_ENV_NAMESPACE => <object_storage_namespace>
    CONDA_ENV_BUCKET => <object_storage_bucket_name>
    Importante

    L'esecuzione del job e del job deve essere configurata con una subnet che dispone di un gateway di servizi per accedere all'ambiente Conda pubblicato nel bucket di storage degli oggetti della tenancy.

  5. Avviare l'esecuzione di un job.

    (Facoltativo) Per utilizzare un ambiente Conda diverso per le singole esecuzioni di job, impostare variabili di ambiente personalizzate per sostituire la configurazione del job.

  6. (Facoltativo) Se è stato utilizzato il log, è possibile esaminarlo per visualizzare i valori di esecuzione del job.

Utilizzo di un file YAML di runtime

È possibile utilizzare un file YAML di runtime per configurare le variabili di ambiente di job anziché utilizzare la console o l'SDK.

Prima di iniziare:

Scaricare, decomprimere e rivedere i file di esempio jobruntime.yaml e conda_pack_test.py per creare e sottoporre a test il progetto.

L'utilizzo di un file jobruntime.yaml semplifica l'impostazione di variabili di ambiente personalizzate nel progetto.

  1. Modificare il file di esempio jobruntime.yaml per specificare i valori.

    Aggiungere le variabili che si desidera utilizzare durante l'esecuzione del job. È possibile aggiungere variabili di ambiente specifiche di esecuzione del job, ad esempio CONDA_ENV_TYPE o CONDA_ENV_SLUG, e coppie di chiavi personalizzate.

    Ad esempio:

    CONDA_ENV_TYPE: service
    CONDA_ENV_SLUG: dataexpl_p37_cpu_v2
    JOB_RUN_ENTRYPOINT: conda_pack_test.py
    KEY1: value1
    KEY2: 123123
    Importante

    Le variabili nidificate non sono supportate.

    Tenere presente che JOB_RUN_ENTRYPOINT per il progetto è incluso nel runtime YAML, pertanto non è necessario eseguire questa operazione manualmente quando si esegue il job.

  2. Crea un progetto semplice con un singolo file python e il tuo file jobruntime.yaml in una directory radice del progetto.
  3. Nel file python, leggere le variabili di ambiente e stamparle per verificare che siano accessibili.

    Ad esempio:

    print("Executing job artifact")
    print(os.getenv("CONDA_PREFIX"))
    print(os.getenv("CONDA_ENV_SLUG"))
    print(os.getenv("JOB_RUN_ENTRYPOINT"))
    print(os.getenv("KEY1"))
    print(os.getenv("KEY2"))
    print(os.getenv("spec"))
  4. Archiviare la directory radice del progetto in un file zip o tar compresso.

    Ad esempio, per comprimere un file su un Mac è possibile utilizzare:

    zip -r zip-runtime-yaml-artifact.zip zip-runtime-yaml-artifact/ -x ".*" -x "__MACOSX"
  5. Nella console, creare un nuovo job e caricare il file di archivio dei job.
  6. Eseguire il job per verificare che funzioni.

    Tenere presente che non è necessario fornire variabili di ambiente nell'esecuzione del job perché sono impostate nel file .yaml.

  7. Monitorare l'esecuzione del job per un completamento corretto.
  8. (Facoltativo) Se è stato utilizzato il log, è possibile esaminarlo per visualizzare i valori di esecuzione del job.

Uso di un vault

Puoi integrare il servizio OCI Vault nei job di Data Science utilizzando i principal delle risorse.

Prima di iniziare:

  • Affinché il principal risorsa nel job abbia accesso a un vault, assicurarsi di disporre di un gruppo dinamico nel compartimento che specifichi l'istanza o il principal risorsa. Ad esempio, è possibile utilizzare il principal risorsa e un gruppo dinamico con questa regola:

    all {resource.type='datasciencejobrun',resource.compartment.id='<compartment_ocid>'}
  • Affinché il job venga eseguito, è necessario assicurarsi di poter gestire almeno la famiglia di segreti nel gruppo dinamico. Ad esempio:

    Allow dynamic-group <dynamic_group_name> to manage secret-family in compartment <compartment_name>

    Il post sul blog Uso dei principal e del vault dell'istanza OCI con Python per recuperare un segreto fornisce dettagli utili.

  • Scaricare, decomprimere e rivedere il file di esempio zipped_python_job.zip che mostra quanto segue:

    • Inizializzazione del client vault nel job mediante l'SDK Python
    • Legge un segreto utilizzando l'OCID segreto.
    • Decodifica il bundle secrete e mostra il contenuto segreto effettivo.

    Poiché i job hanno accesso al principal delle risorse, è possibile inizializzare tutti i client Vault disponibili nell'SDK Python.

  • Creare un vault con chiave master, un segreto e aggiungere un'istruzione dei criteri a tutti i principal delle risorse del job in manage secret-family.

  1. Nella console, creare un nuovo job.
  2. Eseguire il job per verificare che funzioni.
  3. Monitorare l'esecuzione del job per un completamento corretto.
  4. (Facoltativo) Se è stato utilizzato il log, è possibile esaminarlo per visualizzare i valori di esecuzione del job.