Autres méthodes d'exécution des travaux

Vous pouvez utiliser les travaux d'une multitude de façons, notamment à l'aide d'environnements conda et de fichiers ZIP.

Utilisation de fichiers ZIP ou TAR compressés

Vous pouvez utiliser des travaux pour exécuter un projet Python complet que vous archivez dans un fichier unique.

Les fichiers tar compressés ou ZIP exécutés en tant que travaux peuvent tirer parti des environnements conda du service Data Science et des environnements conda personnalisés.

Pour le traitement de travail, pointez vers le fichier d'entrée principal à l'aide de la variable d'environnement JOB_RUN_ENTRYPOINT. Cette variable est uniquement utilisée avec les travaux qui utilisent des artefacts ZIP ou TAR compressés.

Utilisation d'un environnement conda Data Science

Vous pouvez utiliser l'un des environnements conda Data Science inclus dans le service.

Un environnement conda encapsule toutes les dépendances Python tierces (telles que Numpy, Dask ou XGBoost) requises par le traitement de travail. Les environnements conda Data Science sont inclus et gérés dans le service. Si vous n'indiquez pas d'environnement conda dans les configurations de traitement de travail et de travail, aucun environnement conda n'est utilisé car il n'existe pas d'environnement par défaut.

Le code de travail est imbriqué dans un environnement conda Data Science :

Montre comment le code de travail est imbriqué dans un environnement conda Data Science, une forme et un exécution de travail. ainsi que le slug conda dans la carte conda.

  1. Recherchez l'environnement conda Data Science à utiliser, puis sélectionnez l'une des options suivantes :
    • A partir de la console :

      1. Dans un projet, créez une session de bloc-notes.

      2. Ouvrez la session de bloc-notes.

      3. Affichez les environnements conda et sélectionnez l'instance conda Data Science à utiliser.

      4. Copiez le slug de l'environnement conda à partir de la carte sélectionnée.

        Lors de l'exécution d'un travail avec un environnement conda Data Science, vous n'avez pas besoin de le publier dans Object Storage. Vous n'avez besoin que de la valeur du slug conda.

        Conseil

        Vous pouvez tester le code dans un bloc-notes avant de l'exécuter en tant que travail.

    • A partir de la liste des environnements conda Data Science :

      1. Recherchez l'environnement conda à utiliser.

      2. Dans la table, copiez le slug.

  2. Créer un travail et ajouter la variable d'environnement personnalisée suivante pour indiquer le conda Data Science :
    CONDA_ENV_TYPE => "service"
    CONDA_ENV_SLUG = <service_conda_environment_slug>
  3. Démarrez une exécution de travail et, afin d'utiliser un environnement conda différent pour le traitement de travail, utilisez les variables d'environnement personnalisées pour remplacer la configuration de travail.

Utilisation d'un environnement conda personnalisé

Vous pouvez utiliser des travaux de fichier tar compressé et ZIP avec des environnements conda personnalisés ou des environnements conda Data Science.

Un environnement conda encapsule toutes les dépendances Python tierces (telles que Numpy, Dask ou XGBoost) requises par le traitement de travail. Vous créez, publiez et gérez les environnements conda personnalisés. Si vous n'indiquez pas d'environnement conda dans les configurations de traitement de travail et de travail, aucun environnement conda n'est utilisé car il n'existe pas d'environnement par défaut.

Le code travail est imbriqué dans un environnement conda personnalisé comme suit :

Montre comment le code de travail est imbriqué dans un environnement conda personnalisé, une forme et un traitement de travail, ainsi que le slug conda dans la carte conda.

  1. Créez un environnement conda personnalisé.
  2. Publiez-le vers Object Storage.
  3. Configurez des stratégies qui permettent à la ressource d'exécution de travail d'accéder aux environnements conda publiés stockés dans le bucket Object Storage de votre location.
  4. Créez un travail et définissez les variables d'environnement suivantes (la région est facultative s'il s'agit de la même que pour le traitement de travail) :
    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>
    Important

    Le travail et le traitement de travail doivent être configurés avec un sous-réseau disposant d'une passerelle de service pour accéder à l'environnement conda publié dans le bucket Object Storage de votre location.

  5. Démarrez un traitement de travail.

    (Facultatif) Afin d'utiliser un environnement conda différent pour chaque traitement de travail, définissez des variables d'environnement personnalisées pour remplacer la configuration de travail.

  6. (Facultatif) Si vous avez utilisé la journalisation, vous pouvez consulter les journaux pour connaître les valeurs de traitement de travail.

Utilisation d'un fichier YAML d'exécution

Vous pouvez utiliser un fichier YAML d'exécution pour configurer des variables d'environnement de travail plutôt que d'utiliser la console ou le kit SDK.

Avant de commencer :

Téléchargez, décompressez et consultez les exemples de fichier jobruntime.yaml et conda_pack_test.py pour créer et tester votre projet de travail.

L'utilisation d'un fichier jobruntime.yaml facilite la définition de variables d'environnement personnalisées dans le projet.

  1. Modifiez l'exemple de fichier jobruntime.yaml pour indiquer vos valeurs.

    Ajoutez les variables à utiliser lors du traitement de travail. Vous pouvez ajouter des variables d'environnement spécifiques du traitement de travail, telles que CONDA_ENV_TYPE ou CONDA_ENV_SLUG, et des paires de clés personnalisées.

    Par exemple :

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

    Les variables imbriquées ne sont pas prises en charge.

    L'élément JOB_RUN_ENTRYPOINT du projet est inclus dans le code YAML d'exécution. Vous n'avez donc pas besoin d'effectuer cette opération manuellement lorsque vous exécutez le travail.

  2. Créez un projet simple avec un seul fichier Python et votre fichier jobruntime.yaml dans le répertoire racine du projet.
  3. Dans le fichier Python, lisez les variables d'environnement et imprimez-les pour vérifier qu'elles sont accessibles.

    Par exemple :

    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. Archivez le répertoire racine du projet dans un fichier ZIP ou TAR compressé.

    Par exemple, pour compresser un fichier dans un zip sur un Mac, vous pouvez utiliser la commande suivante :

    zip -r zip-runtime-yaml-artifact.zip zip-runtime-yaml-artifact/ -x ".*" -x "__MACOSX"
  5. A partir de la console, créez un travail et téléchargez le fichier d'archive du travail vers le serveur.
  6. Exécutez le travail pour tester son fonctionnement.

    Vous n'avez pas besoin de fournir de variables d'environnement dans le traitement de travail car elles sont définies dans le fichier .yaml.

  7. Surveillez le traitement réussi du travail.
  8. (Facultatif) Si vous avez utilisé la journalisation, vous pouvez consulter les journaux pour connaître les valeurs de traitement de travail.

Utilisation d'un coffre

Vous pouvez intégrer le service OCI Vault aux travaux Data Science à l'aide de principaux de ressource.

Avant de commencer :

  • Pour que le principal de ressource du travail ait accès à un coffre, assurez-vous que vous disposez d'un groupe dynamique dans votre compartiment qui spécifie l'instance ou le principal de ressource. Par exemple, vous pouvez utiliser le principal de ressource et un groupe dynamique avec la règle suivante :

    all {resource.type='datasciencejobrun',resource.compartment.id='<compartment_ocid>'}
  • Pour que le travail soit exécuté, vous devez vous assurer que vous pouvez au moins gérer secret-family sur le groupe dynamique. Par exemple :

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

    L'article de blog Utilisation de principaux d'instance OCI et d'un coffre avec Python pour extraire une clé secrète fournit des détails utiles.

  • Téléchargez, décompressez et consultez l'exemple de fichier zipped_python_job.zip qui présente les éléments suivants :

    • Initialisation du client de coffre dans le travail à l'aide du kit SDK Python
    • Lecture d'une clé secrète à l'aide de son OCID
    • Décodage du package de clé secrète et lecture de son contenu

    Etant donné que les travaux ont accès au principal de ressource, vous pouvez initialiser tous les clients de coffre disponibles dans le kit SDK Python.

  • Créez un coffre disposant d'une clé maître et une clé secrète, et ajoutez une instruction de stratégie à tous les principaux de ressource de travail pour manage secret-family.

  1. A partir de la console, créez un travail.
  2. Exécutez le travail pour tester son fonctionnement.
  3. Surveillez le traitement réussi du travail.
  4. (Facultatif) Si vous avez utilisé la journalisation, vous pouvez consulter les journaux pour connaître les valeurs de traitement de travail.