Création d'un pipeline

Créez un pipeline Data Science pour exécuter une tâche.

Assurez-vous que vous avez créé stratégies, authentification et autorisation nécessaires pour les pipelines.

Important

Pour que les étapes de script fonctionnent correctement, assurez-vous d'avoir ajouté la règle suivante à une stratégie de groupe dynamique :

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

Avant de commencer :

Vous pouvez créer des pipelines à l'aide du kit SDK ADS, de la console OCI ou du kit SDK OCI.

L'utilisation d'ADS pour créer des pipelines peut faciliter le développement du pipeline, des étapes et des dépendances. ADS prend en charge la lecture et l'écriture du pipeline vers et depuis un fichier YAML. Vous pouvez utiliser ADS pour visualiser une représentation visuelle du pipeline. Nous vous recommandons d'utiliser ADS pour créer et gérer le pipeline à l'aide de code.

    1. Sur la page Pipelines, sélectionnez Créer un pipeline. Si vous avez besoin d'aide pour trouver la liste des pipelines, reportez-vous à Liste des pipelines.
    2. (Facultatif) Sélectionnez un autre compartiment pour le pipeline.
    3. (Facultatif) Entrez le nom et la description du pipeline (limite de 255 caractères). Si vous n'indiquez aucun nom, un nom est généré automatiquement.

      Par exemple, pipeline2022808222435.

    4. Sélectionnez Ajouter des étapes de pipeline pour commencer à définir le workflow du pipeline.
    5. Dans le panneau Ajouter une étape de pipeline, sélectionnez l'une des options suivantes, puis terminez la création du pipeline :
    A partir d'un travail

    A partir d'une tâche

    L'étape de pipeline utilise un travail existant. Sélectionnez l'un des travaux de la location.

    1. Entrez un nom unique pour l'étape. Vous ne pouvez pas répéter un nom d'étape dans un pipeline.
    2. (Facultatif) Entrez une description d'étape, qui peut vous aider à trouver les dépendances d'étape.
    3. (Facultatif) Si cette étape dépend d'une autre étape, sélectionnez une ou plusieurs étapes à exécuter avant cette étape.
    4. Sélectionnez le travail pour l'étape à exécuter.
    5. (Facultatif) Saisissez ou sélectionnez l'une des valeurs suivantes pour contrôler cette étape de pipeline :
      Valeur et clé de variable d'environnement personnalisées

      Variables d'environnement pour cette étape de pipeline.

      Valeur

      Valeur de la clé de variable d'environnement personnalisée.

      Vous pouvez sélectionner Clé d'environnement personnalisé supplémentaire pour spécifier d'autres variables.

      Arguments de ligne de commande

      Arguments de ligne de commande à utiliser pour exécuter l'étape de pipeline.

      Durée d'exécution maximale (en minutes)

      Nombre maximal de minutes d'exécution autorisé de l'étape de pipeline. Le service annule l'exécution de pipeline si elle dépasse la valeur indiquée. La durée d'exécution maximale est de 30 jours (43 200 minutes). Nous vous recommandons de configurer une exécution maximale sur toutes les exécutions de pipeline afin d'éviter les exécutions de pipeline bloquées.

    6. Sélectionnez Enregistrer pour ajouter l'étape et revenir à la page Créer un pipeline.
    7. (Facultatif) Sélectionnez +Add étapes de pipeline pour ajouter d'autres étapes à l'exécution de votre workflow, puis répétez les étapes précédentes.
    8. (Facultatif) Créez une configuration de pipeline par défaut utilisée lorsque le pipeline est exécuté en entrant une variable d'environnement, des arguments de ligne de commande et des options d'exécution maximales. Pour plus d'informations sur ces champs, reportez-vous à l'étape 5.
    9. (Facultatif) Sélectionnez une forme de calcul en sélectionnant Sélectionner et en procédant comme suit :
      1. Sélectionner un type d'instance.
      2. Sélectionnez une série de formes.
      3. Sélectionnez l'une des formes de calcul prises en charge de la série.
      4. Sélectionnez la forme qui convient le mieux à l'utilisation de la ressource. Pour la forme AMD, vous pouvez utiliser la valeur par défaut, ou définir le nombre d'OCPU et la mémoire.

        Pour chaque OCPU, sélectionnez jusqu'à 64 Go de mémoire et un total maximal de 512 Go. La quantité minimale de mémoire autorisée est 1 Go ou une valeur correspondant au nombre d'OCPU, la valeur la plus élevée étant retenue.

      5. Sélectionnez Sélectionner une forme.
    10. Dans Stockage de blocs, entrez la quantité de stockage à utiliser entre 50 Go et 10, 240 Go (10 To). Vous pouvez modifier cette valeur par incrément de 1 Go. La valeur par défaut est 100 Go.
    11. (Facultatif) Pour utiliser la journalisation, sélectionnez Sélectionner, puis vérifiez que l'option Activer la journalisation est sélectionnée.
      1. Sélectionnez un groupe de journaux dans la liste. Vous pouvez passer à un autre compartiment pour indiquer un groupe de journaux qui n'est pas dans le même compartiment que le travail.
      2. Sélectionnez l'une des options suivantes pour stocker tous les messages stdout et stderr :
        Activer la création automatique de journal

        Data Science crée automatiquement un journal au démarrage du travail.

        Sélectionner un journal

        Sélectionnez le journal à utiliser.

      3. Sélectionnez Sélectionner pour revenir à la page de création du traitement de travail.
    12. (Facultatif) Sélectionnez Afficher les options avancées pour ajouter des balises au pipeline.
    13. (Facultatif) Dans la section Balises, ajoutez des balises au <resourceType>. Si vous êtes autorisé à créer une ressource, vous disposez également des droits d'accès nécessaires pour lui appliquer des balises à forme libre. Pour appliquer une balise defined, vous devez être autorisé à utiliser la balise namespace. Pour plus d'informations sur le balisage, reportez-vous à Balises de ressource. Si vous n'êtes pas sûr d'appliquer des balises, ignorez cette option ou demandez à un administrateur. Vous pouvez appliquer des balises ultérieurement.
    14. Sélectionnez Créer.

      Une fois que le pipeline a l'état Actif, vous pouvez utiliser des exécutions de pipeline pour l'exécuter de façon répétée.

    A partir d'un script

    à partir d'un script

    L'étape utilise un script à exécuter. Vous devez télécharger l'artefact contenant tout le code de l'étape à exécuter.

    1. Entrez un nom unique pour l'étape. Vous ne pouvez pas répéter un nom d'étape dans un pipeline.
    2. (Facultatif) Entrez une description d'étape, qui peut vous aider à trouver les dépendances d'étape.
    3. (Facultatif) Si cette étape dépend d'une autre étape, sélectionnez une ou plusieurs étapes à exécuter avant cette étape.
    4. Faites glisser un fichier d'étapes de travail dans la zone ou sélectionnez Sélectionner un fichier pour accéder à ce fichier et le sélectionner.
    5. Dans Point d'entrée, sélectionnez un fichier comme point d'exécution d'entrée de l'étape. Cela est utile lorsque vous disposez de nombreux fichiers.
    6. (Facultatif) Saisissez ou sélectionnez l'une des valeurs suivantes pour contrôler cette étape de pipeline :
      Valeur et clé de variable d'environnement personnalisées

      Variables d'environnement pour cette étape de pipeline.

      Valeur

      Valeur de la clé de variable d'environnement personnalisée.

      Vous pouvez sélectionner Clé d'environnement personnalisé supplémentaire pour spécifier d'autres variables.

      Arguments de ligne de commande

      Arguments de ligne de commande à utiliser pour exécuter l'étape de pipeline.

      Durée d'exécution maximale (en minutes)

      Nombre maximal de minutes d'exécution autorisé de l'étape de pipeline. Le service annule l'exécution de pipeline si elle dépasse la valeur indiquée. La durée d'exécution maximale est de 30 jours (43 200 minutes). Nous vous recommandons de configurer une exécution maximale sur toutes les exécutions de pipeline afin d'éviter les exécutions de pipeline bloquées.

    7. (Facultatif) Créez une configuration de pipeline par défaut utilisée lorsque le pipeline est exécuté en entrant une variable d'environnement, des arguments de ligne de commande et des options d'exécution maximales. Pour plus d'informations sur ces champs, reportez-vous à l'étape 6.
    8. Dans Stockage de blocs, entrez la quantité de stockage à utiliser entre 50 Go et 10, 240 Go (10 To). Vous pouvez modifier cette valeur par incrément de 1 Go. La valeur par défaut est 100 Go.
    9. Sélectionnez Enregistrer pour ajouter l'étape et revenir à la page Créer un pipeline.
    10. (Facultatif) Utilisez +Add étapes de pipeline pour ajouter d'autres étapes à l'exécution de votre workflow en répétant les étapes précédentes.
    11. (Facultatif) Créez une configuration de pipeline par défaut utilisée lorsque le pipeline est exécuté en entrant une variable d'environnement, des arguments de ligne de commande et des options d'exécution maximales. Pour plus d'informations sur ces champs, reportez-vous à l'étape 6.
    12. Dans Stockage de blocs, entrez la quantité de stockage à utiliser entre 50 Go et 10, 240 Go (10 To). Vous pouvez modifier cette valeur par incrément de 1 Go. La valeur par défaut est 100 Go.
    13. Sélectionnez l'une des options suivantes pour configurer le type de réseau :
      • Mise en réseau par défaut : la charge de travail est attachée à l'aide d'une carte d'interface réseau virtuelle secondaire à un VCN et un sous-réseau préconfigurés et gérés par le service. Ce sous-réseau fourni permet la sortie vers le réseau Internet public par le biais d'une passerelle NAT et l'accès à d'autres services Oracle Cloud par le biais d'une passerelle de service.

        Si vous avez besoin d'accéder uniquement au réseau Internet public et aux services OCI, nous vous recommandons d'utiliser cette option. Il n'est pas nécessaire de créer des ressources réseau ni d'écrire des stratégies pour les droits d'accès réseau.

      • Mise en réseau personnalisée : sélectionnez le VCN et le sous-réseau que vous souhaitez utiliser pour la ressource (session de bloc-notes ou travail).

        Pour l'accès sortant au réseau Internet public, utilisez un sous-réseau privé doté d'un routage vers une passerelle NAT.

        Si vous ne voyez pas le VCN ou le sous-réseau à utiliser, sélectionnez Modifier le compartiment, puis sélectionnez le compartiment qui contient le VCN ou le sous-réseau.

        Important

        La mise en réseau personnalisée doit être utilisée pour utiliser un montage de stockage de fichiers.

    14. (Facultatif) Pour utiliser la journalisation, sélectionnez Sélectionner, puis vérifiez que l'option Activer la journalisation est sélectionnée.
      1. Sélectionnez un groupe de journaux dans la liste. Vous pouvez passer à un autre compartiment pour indiquer un groupe de journaux qui n'est pas dans le même compartiment que le travail.
      2. Sélectionnez l'une des options suivantes pour stocker tous les messages stdout et stderr :
        Activer la création automatique de journal

        Data Science crée automatiquement un journal au démarrage du travail.

        Sélectionner un journal

        Sélectionnez le journal à utiliser.

      3. Sélectionnez Sélectionner pour revenir à la page de création du traitement de travail.
    15. (Facultatif) Sélectionnez Afficher les options avancées pour ajouter des balises au pipeline.
    16. (Facultatif) Dans la section Balises, ajoutez des balises au <resourceType>. Si vous êtes autorisé à créer une ressource, vous disposez également des droits d'accès nécessaires pour lui appliquer des balises à forme libre. Pour appliquer une balise defined, vous devez être autorisé à utiliser la balise namespace. Pour plus d'informations sur le balisage, reportez-vous à Balises de ressource. Si vous n'êtes pas sûr d'appliquer des balises, ignorez cette option ou demandez à un administrateur. Vous pouvez appliquer des balises ultérieurement.
    17. Sélectionnez Créer.

      Une fois que le pipeline a l'état Actif, vous pouvez utiliser des exécutions de pipeline pour l'exécuter de façon répétée.

    A partir d'un conteneur

    A partir du conteneur

    Lorsque vous définissez des étapes de pipeline, vous pouvez choisir d'utiliser Utiliser votre propre conteneur.
    1. Sélectionnez A partir du conteneur.
    2. Dans la section Configuration de conteneur, sélectionnez Configurer.
    3. Dans le panneau Configurer l'environnement de conteneur, sélectionnez un référentiel dans la liste. Si le référentiel se trouve dans un autre compartiment, sélectionnez Modifier le compartiment.
    4. Sélectionnez une image dans la liste.
    5. (Facultatif) Entrez un point d'entrée. Pour en ajouter un autre, sélectionnez paramètre +Add.
    6. (Facultatif) Entrez un CMD. Pour en ajouter un autre, sélectionnez paramètre +Add.
      Utilisez CMD comme arguments pour ENTRYPOINT ou comme seule commande à exécuter en l'absence de ENTRYPOINT.
    7. (Facultatif) Entrez une synthèse d'image.
    8. (Facultatif) Si vous utilisez la vérification de signature, entrez l'OCID de la signature d'image.
      Par exemple, ocid1.containerimagesignature.oc1.iad.aaaaaaaaab....
    9. (Facultatif) Téléchargez l'artefact d'étape en le faisant glisser dans la zone.
      Remarque

      Cette étape est facultative uniquement si BYOC est configuré.
  • Ces variables d'environnement contrôlent l'exécution du pipeline.

    Vous pouvez utiliser l'interface de ligne de commande OCI pour créer un pipeline comme dans cet exemple Python :

    1. Créer un pipeline :

      Les paramètres suivants peuvent être utilisés dans la charge utile :

      Nom de paramètre Requis Description
      Pipeline (niveau supérieur)
      projectId Requis OCID du projet dans lequel créer le pipeline.
      compartmentId Requis OCID du compartiment dans lequel créer le pipeline.
      displayName Facultatif Nom du pipeline.
      infrastructureConfigurationDetails Facultatif

      Configuration d'infrastructure (calcul) par défaut à utiliser pour toutes les étapes de pipeline. Pour plus de détails sur les paramètres pris en charge, reportez-vous à infrastructureConfigurationDetails.

      Peut être remplacé par la configuration d'exécution de pipeline.

      logConfigurationDetails Facultatif

      Journal par défaut à utiliser pour toutes les étapes de pipeline. Pour plus de détails sur les paramètres pris en charge, reportez-vous à logConfigurationDetails.

      Peut être remplacé par la configuration d'exécution de pipeline.

      configurationDetails Facultatif

      Configuration par défaut de l'exécution de pipeline. Pour plus de détails sur les paramètres pris en charge, reportez-vous à configurationDetails.

      Peut être remplacé par la configuration d'exécution de pipeline.

      freeformTags Facultatif Balises à ajouter à la ressource de pipeline.
      stepDetails
      stepName Requis Nom de l'étape. Vous devez être unique dans le pipeline.
      description Facultatif Description en texte libre de l'étape.
      stepType Requis CUSTOM_SCRIPT ou ML_JOB
      jobId Obligatoire* Pour les étapes ML_JOB, il s'agit de l'OCID de travail à utiliser pour l'exécution d'étape.
      stepInfrastructureConfigurationDetails facultatif*

      Configuration d'infrastructure (calcul) par défaut à utiliser pour cette étape. Pour plus de détails sur les paramètres pris en charge, reportez-vous à infrastructureConfigurationDetails.

      Peut être remplacé par la configuration d'exécution de pipeline.

      * Doit être défini sur au moins un niveau (la priorité étant basée sur la priorité, 1 étant la plus élevée) :

      1 exécution de pipeline et/ou

      2 étapes et/ou

      3 pipeline

      stepConfigurationDetails facultatif*

      Configuration par défaut de l'exécution d'étape. Pour plus d'informations sur les paramètres pris en charge, reportez-vous à configurationDetails.

      Peut être remplacé par la configuration d'exécution de pipeline.

      * Doit être défini sur au moins un niveau (la priorité étant basée sur la priorité, 1 étant la plus élevée) :

      1 exécution de pipeline et/ou

      2 étapes et/ou

      3 pipeline

      dependsOn Facultatif Liste des étapes qui doivent être effectuées avant le début de cette étape. Cela crée le graphique des dépendances de workflow de pipeline.
      infrastructureConfigurationDetails
      shapeName Requis Nom de la forme de calcul à utiliser. Par exemple, VM.Standard2.4.
      blockStorageSizeInGBs Requis Nombre de Go à utiliser comme stockage attaché pour la machine virtuelle.
      logConfigurationDetails
      enableLogging Requis Définir pour utiliser la journalisation.
      logGroupId Requis OCID de groupe de journaux à utiliser pour les journaux. Le groupe de journaux doit être créé et disponible lors de l'exécution du pipeline
      logId facultatif* OCID de journal à utiliser pour les journaux lorsque vous n'utilisez pas le paramètre enableAutoLogCreation.
      enableAutoLogCreation Facultatif Si la valeur est True, un journal est créé pour chaque exécution de pipeline.
      configurationDetails
      type Requis Seul DEFAULT est pris en charge.
      maximumRuntimeInMinutes Facultatif Délai d'exécution du pipeline en minutes.
      environmentVariables Facultatif

      Variables d'environnement à fournir pour les exécutions d'étape de pipeline.

      Par exemple :

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

      Consultez la liste des variables d'environnement prises en charge par les services.

      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

      Tant que tous les artefacts d'étape de pipeline n'ont pas été téléchargés, le pipeline présente l'état CREATING.

    2. Téléchargez un artefact d'étape :

      Une fois qu'un artefact est téléchargé, il ne peut pas être modifié.

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

      Vous pouvez uniquement mettre à jour un pipeline dont l'état est ACTIVE.

      update_pipeline_details = {
      "displayName": "pipeline-updated"
      }
      self.dsc.update_pipeline(<pipeline_id>, <update_pipeline_details>)
    4. Démarrer l'exécution de pipeline :
      pipeline_run_payload = {
      "projectId": project_id,
      "displayName": "pipeline-run",
      "pipelineId": <pipeline_id>,
      "compartmentId": <compartment_id>,
      }
      dsc.create_pipeline_run(pipeline_run_payload)
  • Le kit SDK ADS est également une bibliothèque Python publique que vous pouvez installer avec la commande suivante :

    pip install oracle-ads

    Vous pouvez utiliser le SDK ADS pour créer et exécuter des pipelines.

Réseaux personnalisés

Utilisez un réseau personnalisé que vous avez déjà créé dans le pipeline pour vous donner plus de flexibilité sur le réseau.

Création de pipelines avec des fonctions de réseau personnalisées

Vous pouvez choisir d'utiliser des fonctions de réseau personnalisées lors de la création d'un pipeline.

Remarque

Le passage d'un réseau personnalisé à un réseau géré n'est pas pris en charge après la création du pipeline.
Conseil

Si la bannière The specified subnet is not accessible. Select a different subnet. apparaît, créez une stratégie d'accès réseau comme décrit dans la section Stratégies de pipeline.

Utilisation de la console

Sélectionnez cette option pour utiliser les fonctions de réseau personnalisées dans le panneau Créer un pipeline.

Si vous sélectionnez la mise en réseau par défaut, le système utilise le réseau géré par service existant. Si vous sélectionnez l'option de mise en réseau personnalisée, vous êtes invité à choisir un VCN et un sous-réseau.

Sélectionnez le VCN et le sous-réseau que vous souhaitez utiliser pour la ressource. Pour l'accès sortant au réseau Internet public, utilisez un sous-réseau privé doté d'un routage vers une passerelle NAT. Si vous ne voyez pas le VCN ou le sous-réseau à utiliser, sélectionnez Modifier le compartiment, puis sélectionnez le compartiment qui contient le VCN ou le sous-réseau.

Utiliser des API

Indiquez subnet-id dans infrastructure-configuration-details pour utiliser un sous-réseau personnalisé au niveau du pipeline. Par exemple :
"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"
}
Ou, dans l'étape-container-configuration-details, utilisez un sous-réseau personnalisé pour une étape particulière. Par exemple :
"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"
},