Autres façons d'exécuter des travaux

Vous pouvez utiliser des travaux de différentes façons, par exemple, avec des environnements Conda et des fichiers zip.

Utilisation de fichiers tar compressés ou zip

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

Les fichiers zip ou tar compressés qui sont exécutés en tant que travail peuvent tirer parti des environnements Conda du service de science des données et des environnements Conda personnalisés.

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

Utilisation d'un environnement Conda du service Science des données

Vous pouvez utiliser l'un des environnements Conda inclus dans le service Science des données.

Un environnement Conda encapsule toutes les dépendances Python tierces (telles que Numpy, Dask ou XGBoost) requises par l'exécution de travail. Les environnements Conda sont inclus et gérés dans le service Science des données. Si vous ne spécifiez pas d'environnement Conda dans le cadre des configurations de travail et d'exécution de travail, aucun n'est utilisé car il n'y a pas de valeur par défaut.

Votre code de travail est intégré dans un environnement Conda du service de science des données :

Affiche comment le code de travail est intégré dans un Conda, une forme et une exécution de travail du service de science des données. Ligne-bloc Conda dans la carte Conda.

  1. Recherchez l'environnement Conda du service de science des données à utiliser, puis sélectionnez l'un des éléments suivants :
    • Dans la console :

      1. Dans un projet, créez une session de carnet.

      2. Ouvrez la session de carnet.

      3. Consulter les environnements Conda et sélectionner l'environnement Conda du service Science des données à utiliser.

      4. Copiez la ligne-bloc de l'environnement Conda à partir de la carte sélectionnée.

        Lors de l'exécution d'un travail avec un environnement Conda du service Science des données, vous n'avez pas besoin de le publier dans le service de stockage d'objets. Vous n'avez besoin que de la valeur de sa ligne-bloc.

        Conseil

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

    • Dans la liste des environnements Data Science conda :

      1. Recherchez l'environnement Conda à utiliser.

      2. Dans le tableau, copiez la ligne-bloc.

  2. Créer un travail et ajouter cette variable d'environnement personnalisée pour spécifier l'environnement Condda du service Science des données :
    CONDA_ENV_TYPE => "service"
    CONDA_ENV_SLUG = <service_conda_environment_slug>
  3. Démarrez une exécution de travail et, pour utiliser un environnement Conda différent pour cette exécution, 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 fichiers zip et tar compressés avec des environnements conda personnalisés ou des environnements conda du service de science des données.

Un environnement Conda encapsule toutes les dépendances Python tierces (telles que Numpy, Dask ou XGBoost) requises par votre exécution de travail. Vous créez, publiez et gérez des environnements Conda personnalisés. Si vous ne spécifiez pas d'environnement Conda dans le cadre des configurations de travail et d'exécution de travail, aucun n'est utilisé car il n'y a pas de valeur par défaut.

Votre code de travail est intégré dans un environnement Conda personnalisé comme suit :

Affiche la façon dont votre code de travail est intégré dans un environnement Conda personnalisé, une forme et une exécution de travail. Ligne-bloc Conda dans la carte Conda.

  1. Créez un environnement Conda personnalisé.
  2. Publiez-le dans le stockage d'objets.
  3. Configurez des politiques qui permettent à la ressource d'exécution de travail d'accéder aux environnements Conda publiés qui sont stockés dans le seau de stockage d'objets de votre location.
  4. Créez un travail et définissez ces variables d'environnement (la région est facultative si elle est identique à celle de l'exécution 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 l'exécution de travail doivent être configurés avec un sous-réseau qui comporte une passerelle de service pour accéder à l'environnement Conda publié dans le seau de stockage d'objets de votre location.

  5. Démarrez une exécution de travail.

    (Facultatif) Pour utiliser un autre environnement Conda pour les exécutions de travail individuelles, 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 valeurs de l'exécution 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 la console ou la trousse SDK.

Avant de commencer :

Téléchargez, décompressez et vérifiez les exemples de fichiers 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 votre projet.

  1. Modifiez l'exemple de fichier jobruntime.yaml pour spécifier vos valeurs.

    Ajoutez les variables à utiliser lors de l'exécution de travail. Vous pouvez ajouter des variables d'environnement spécifiques d'exécution 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.

    Notez que JOB_RUN_ENTRYPOINT pour le projet est inclus dans le fichier YAML d'exécution. Vous n'avez donc pas à le faire manuellement lors de l'exécution de travail.

  2. Créez un projet simple avec un seul fichier Python et votre fichier jobruntime.yaml dans un répertoire racine de projet.
  3. Dans le fichier Python, lisez les variables d'environnement et imprimez-les pour vérifier si 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.

    Par exemple, pour compresser un fichier sur un Mac, vous pouvez utiliser :

    zip -r zip-runtime-yaml-artifact.zip zip-runtime-yaml-artifact/ -x ".*" -x "__MACOSX"
  5. Dans la console, créez un nouveau travail et chargez le fichier d'archives du travail.
  6. Exécutez le travail pour tester son fonctionnement.

    Notez que vous n'avez besoin de fournir aucune variable d'environnement dans l'exécution de travail, car elle est définie dans votre fichier .yaml.

  7. Surveillez l'exécution de travail jusqu'à ce qu'elle aboutisse.
  8. (Facultatif) Si vous avez utilisé la journalisation, vous pouvez consulter les valeurs de l'exécution de travail.

Utilisation d'une chambre forte

Vous pouvez intégrer le service Chambre forte pour OCI aux travaux du service Science des données à l'aide de principaux de ressources.

Avant de commencer :

  • Pour que le principal de ressource du travail ait accès à une chambre forte, assurez-vous de disposer 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 cette règle :

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

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

    Le billet de blogue sur l'utilisation des principaux d'instance et du service de chambre forte pour OCI 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 chambre forte dans le travail à l'aide de la trousse SDK Python
    • Lecture d'une clé secrète à l'aide de son OCID
    • Décodage de l'ensemble de la clé secrète et affichage de son contenu réel.

    Etant donné que les travaux ont accès au principal de ressource, vous pouvez initialiser tous les clients du coffre-fort disponibles dans la trousse SDK Python.

  • Créez une chambre forte ayant une clé principale, une clé secrète et ajoutez un énoncé de politique accordant à tous les principaux de ressource de travail l'autorisation manage secret-family.

  1. Dans la console, créez un nouveau travail.
  2. Exécutez le travail pour tester son fonctionnement.
  3. Surveillez l'exécution de travail jusqu'à ce qu'elle aboutisse.
  4. (Facultatif) Si vous avez utilisé la journalisation, vous pouvez consulter les valeurs de l'exécution de travail.