Création d'un pipeline

Créez un pipeline du service de science des données pour exécuter une tâche.

Assurez-vous d'avoir créé les politiques, authentification et autorisation nécessaires pour les pipelines.

Important

Pour le bon fonctionnement des étapes de script, assurez-vous d'avoir ajouté la règle suivante à une politique 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 de la trousse SDK ADS, de la console OCI ou de la trousse 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 afficher une représentation visuelle du pipeline. Nous vous recommandons d'utiliser ADS pour créer et gérer un pipeline à l'aide de code.

    1. Dans la page Pipelines, sélectionnez Créer un pipeline. Si vous avez besoin d'aide pour trouver la liste des pipelines, voir Liste des pipelines.
    2. (Facultatif) Sélectionnez un autre compartiment pour le pipeline.
    3. (Facultatif) Entrez un nom et une description pour le pipeline (255 caractères au maximum). Si vous ne fournissez pas de nom, un nom est automatiquement généré.

      Par exemple pipeline2022808222435.

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

    À partir d'un emploi

    L'étape de pipeline utilise une tâche existante. Sélectionnez une des tâches 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 la tâche à exécuter pour l'étape.
    5. (Facultatif) Entrez ou sélectionnez l'une des valeurs suivantes pour contrôler cette étape de pipeline :
      Clé et valeur de variable d'environnement personnalisée

      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ée 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.

      Délai d'exécution maximal (en minutes)

      Nombre maximal de minutes pendant lesquelles l'étape de pipeline est autorisée à s'exécuter. Le service annule l'exécution du pipeline si sa durée dépasse la valeur spécifiée. Le temps d'exécution maximal est de 30 jours (43 200 minutes). Nous vous recommandons de configurer un temps d'exécution maximal sur toutes les exécutions de pipeline pour empêcher les exécutions de pipeline bloquées.

    6. Sélectionnez Enregistrer pour ajouter l'étape et retourner à la page Créer un pipeline.
    7. (Facultatif) Sélectionnez +Add étapes de pipeline pour ajouter d'autres étapes pour terminer votre flux de travail et répétez les étapes précédentes.
    8. (Facultatif) Créez une configuration de pipeline par défaut utilisée lors de l'exécution du pipeline en entrant une variable d'environnement, des arguments de ligne de commande et des options d'exécution maximale. Voir l'étape 5 pour une explication de ces champs.
    9. (Facultatif) Sélectionnez une forme de calcul en sélectionnant Sélectionner et en suivant les étapes suivantes :
      1. Sélectionner un type d'instance.
      2. Sélectionnez une série de formes.
      3. Sélectionnez une des formes de calcul prises en charge de la série.
      4. Sélectionnez la forme qui convient le mieux à l'utilisation souhaitée de la ressource. Pour la forme AMD, vous pouvez utiliser la valeur par défaut ou définir le nombre d'OCPU et la quantité de 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 de 1 Go ou une valeur correspondant au nombre d'OCPU, selon la valeur la plus élevée.

      5. Sélectionnez Sélectionner une forme.
    10. Pour Stockage par blocs, entrez la quantité de stockage à utiliser entre 50 Go et 10, 240 Go (10 To). Vous pouvez modifier la valeur par incréments de 1 Go. La valeur par défaut est 100 Go.
    11. (Facultatif) Pour utiliser la journalisation, sélectionnez Sélectionner, puis assurez-vous 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 spécifier un groupe de journaux dans un compartiment différent de celui du travail.
      2. Sélectionnez l'une des options suivantes pour stocker tous les messages stdout et stderr :
        Activer la création automatique des journaux

        Le service de science des données crée automatiquement un journal au démarrage du travail.

        Sélectionner un journal

        Sélectionnez un journal à utiliser.

      3. Sélectionnez Sélectionner pour retourner à la page de création de l'exécution de travail.
    12. (Facultatif) Sélectionnez Afficher les options avancées pour ajouter des marqueurs au pipeline.
    13. (Facultatif) Dans la section Marqueurs, ajoutez un ou plusieurs marqueurs à resourceType. Si vous êtes autorisé à créer une ressource, vous disposez également des autorisations nécessaires pour appliquer des marqueurs à structure libre à cette ressource. Pour appliquer un marqueur défini, vous devez être autorisé à utiliser l'espace de noms de marqueur. Pour plus d'informations sur le marquage, voir Marqueurs de ressource. Si vous ne savez pas si vous devez appliquer des marqueurs, ignorez cette option ou demandez à un administrateur. Vous pouvez appliquer des marqueurs plus tard.
    14. Sélectionnez Créer.

      Une fois le pipeline actif, vous pouvez utiliser des exécutions de pipeline pour exécuter le pipeline de manière répétée.

    À partir d'un script

    À partir d'un script

    L'étape utilise un script à exécuter. Vous devez 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'étape de travail dans la zone ou sélectionnez Sélectionner un fichier pour y accéder.
    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 avez de nombreux fichiers.
    6. (Facultatif) Entrez ou sélectionnez l'une des valeurs suivantes pour contrôler cette étape de pipeline :
      Clé et valeur de variable d'environnement personnalisée

      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ée 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.

      Délai d'exécution maximal (en minutes)

      Nombre maximal de minutes pendant lesquelles l'étape de pipeline est autorisée à s'exécuter. Le service annule l'exécution du pipeline si sa durée dépasse la valeur spécifiée. Le temps d'exécution maximal est de 30 jours (43 200 minutes). Nous vous recommandons de configurer un temps d'exécution maximal sur toutes les exécutions de pipeline pour empêcher les exécutions de pipeline bloquées.

    7. (Facultatif) Créez une configuration de pipeline par défaut utilisée lors de l'exécution du pipeline en entrant une variable d'environnement, des arguments de ligne de commande et des options d'exécution maximale. Voir l'étape 6 pour une explication de ces champs.
    8. Pour Stockage par blocs, entrez la quantité de stockage à utiliser entre 50 Go et 10, 240 Go (10 To). Vous pouvez modifier la valeur par incréments de 1 Go. La valeur par défaut est 100 Go.
    9. Sélectionnez Enregistrer pour ajouter l'étape et retourner à la page Créer un pipeline.
    10. (Facultatif) Utilisez +Add étapes de pipeline pour ajouter d'autres étapes pour terminer votre flux de travail en répétant les étapes précédentes.
    11. (Facultatif) Créez une configuration de pipeline par défaut utilisée lors de l'exécution du pipeline en entrant une variable d'environnement, des arguments de ligne de commande et des options d'exécution maximale. Voir l'étape 6 pour une explication de ces champs.
    12. Pour Stockage par blocs, entrez la quantité de stockage à utiliser entre 50 Go et 10, 240 Go (10 To). Vous pouvez modifier la valeur par incréments 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 :
      • Réseau par défaut — La charge de travail est attachée à l'aide d'une carte VNIC secondaire à un VCN et à un sous-réseau préconfigurés gérés par le service. Ce sous-réseau donne accès à l'Internet public par l'intermédiaire d'une passerelle NAT et à d'autres services Oracle Cloud par l'intermédiaire d'une passerelle de service.

        Si vous avez besoin d'un accès uniquement à l'Internet public et aux services OCI, nous vous recommandons d'utiliser cette option. Vous n'avez pas besoin de créer des ressources de réseau ni d'écrire des politiques pour les autorisations de réseau.

      • Réseau personnalisé — Sélectionnez le VCN et le sous-réseau à utiliser pour la ressource (session de carnet ou tâche).

        Pour l'accès sortant à l'Internet public, utilisez un sous-réseau privé avec une route vers une passerelle NAT.

        Si vous ne voyez pas le VCN ou le sous-réseau que vous voulez utiliser, sélectionnez Changer de compartiment, puis sélectionnez le compartiment qui contient le VCN ou le sous-réseau.

        Important

        Le réseau personnalisé doit être utilisé pour utiliser un montage de stockage de fichiers.

    14. (Facultatif) Pour utiliser la journalisation, sélectionnez Sélectionner, puis assurez-vous 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 spécifier un groupe de journaux dans un compartiment différent de celui du travail.
      2. Sélectionnez l'une des options suivantes pour stocker tous les messages stdout et stderr :
        Activer la création automatique des journaux

        Le service de science des données crée automatiquement un journal au démarrage du travail.

        Sélectionner un journal

        Sélectionnez un journal à utiliser.

      3. Sélectionnez Sélectionner pour retourner à la page de création de l'exécution de travail.
    15. (Facultatif) Sélectionnez Afficher les options avancées pour ajouter des marqueurs au pipeline.
    16. (Facultatif) Dans la section Marqueurs, ajoutez un ou plusieurs marqueurs à resourceType. Si vous êtes autorisé à créer une ressource, vous disposez également des autorisations nécessaires pour appliquer des marqueurs à structure libre à cette ressource. Pour appliquer un marqueur défini, vous devez être autorisé à utiliser l'espace de noms de marqueur. Pour plus d'informations sur le marquage, voir Marqueurs de ressource. Si vous ne savez pas si vous devez appliquer des marqueurs, ignorez cette option ou demandez à un administrateur. Vous pouvez appliquer des marqueurs plus tard.
    17. Sélectionnez Créer.

      Une fois le pipeline actif, vous pouvez utiliser des exécutions de pipeline pour exécuter le pipeline de manière répétée.

    Conteneur source

    Conteneur source

    Facultativement, lors de la définition des étapes de pipeline, vous pouvez choisir d'utiliser Utiliser votre propre conteneur.
    1. Sélectionnez De conteneur.
    2. Dans la section Configuration de conteneur, sélectionnez Configurer.
    3. Dans le panneau Configurer votre 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 Changer de 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 la seule commande à exécuter en l'absence d'ENTRYPOINT.
    7. (Facultatif) Entrez un condensé 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) Chargez l'artefact d'étape en le faisant glisser dans la zone.
      Note

      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 les données utiles :

      Nom de paramètre Obligatoire Description
      Pipeline (niveau supérieur)
      projectId Obligatoire OCID du projet dans lequel créer le pipeline.
      compartmentId Obligatoire 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 du pipeline, voir infrastructureConfigurationDetails pour plus de détails sur les paramètres pris en charge.

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

      logConfigurationDetails Facultatif

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

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

      configurationDetails Facultatif

      Configuration par défaut pour l'exécution du pipeline, voir configurationDetails pour plus de détails sur les paramètres pris en charge.

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

      freeformTags Facultatif Marqueurs à ajouter à la ressource de pipeline.
      stepDetails
      stepName Obligatoire Nom de l'étape. Doit être unique dans le pipeline.
      description Facultatif Description en texte libre de l'étape.
      stepType Obligatoire CUSTOM_SCRIPT ou ML_JOB
      jobId Requis* Pour les étapes ML_JOB, il s'agit de l'OCID de la tâche à utiliser pour l'exécution de l'étape.
      stepInfrastructureConfigurationDetails Facultative *

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

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

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

      1 exécution de pipeline et/ou

      2 étapes et/ou

      3 canalisation

      stepConfigurationDetails Facultative *

      Configuration par défaut pour l'exécution de l'étape, voir configurationDetails pour plus de détails sur les paramètres pris en charge.

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

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

      1 exécution de pipeline et/ou

      2 étapes et/ou

      3 canalisation

      dependsOn Facultatif Liste des étapes qui doivent être terminées avant le début de cette étape. Cela crée le graphique des dépendances de flux de travail de pipeline.
      infrastructureConfigurationDetails
      shapeName Obligatoire Nom de la forme de calcul à utiliser. Par exemple, VM.Standard2.4.
      blockStorageSizeInGBs Obligatoire Nombre de Go à utiliser comme stockage attaché pour la machine virtuelle.
      logConfigurationDetails
      enableLogging Obligatoire Définir pour utiliser la journalisation.
      logGroupId Obligatoire OCID du groupe de journaux à utiliser pour les journaux. Le groupe de journaux doit être créé et disponible lors de l'exécution du pipeline
      logId Facultative * OCID du journal à utiliser pour les journaux lorsque le paramètre enableAutoLogCreation n'est pas utilisé.
      enableAutoLogCreation Facultatif Si la valeur est réglée à True, un journal est créé pour chaque exécution de pipeline.
      configurationDetails
      type Obligatoire Seule DEFAULT est prise 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 le service.

      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 des étapes de pipeline ne sont pas chargés, le pipeline est à l'état CREATING.

    2. Charger un artefact d'étape :

      Une fois l'artefact 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. Mettre à jour un pipeline :

      Vous ne pouvez mettre à jour un pipeline que s'il est à l'état ACTIVE.

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

    pip install oracle-ads

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

Service de réseau personnalisé

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

Création de pipelines avec un réseau personnalisé

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

Note

Le passage d'un réseau personnalisé à un réseau géré n'est pas pris en charge une fois le pipeline créé.
Conseil

Si vous voyez la bannière : The specified subnet is not accessible. Select a different subnet. créez une politique d'accès au réseau, comme décrit dans la section, Politiques de pipeline.

Utilisation de la console

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

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

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

Utilisation 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 les détails step-container-configuration-details pour utiliser 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"
},