Gérer les pipelines à l'aide de la gestion du contrôle du code source

Cette page explique comment gérer les pipelines à l'aide du contrôle des versions dans Cloud Data Fusion via des dépôts Git.

À propos de la gestion du contrôle des sources

Cloud Data Fusion permet de concevoir visuellement des pipelines pour les intégrations ETL et ELT. Pour une meilleure gestion des pipelines entre le développement et la production, Cloud Data Fusion permet de gérer le contrôle des sources des pipelines à l'aide de GitHub et d'autres systèmes de contrôle des versions.

La gestion du contrôle des sources dans Cloud Data Fusion vous permet de:

  • Intégrez chaque espace de noms Cloud Data Fusion à un système de contrôle des versions.
  • Gérez vos pipelines dans un dépôt Git central.
  • Examiner et auditer les modifications apportées au pipeline.
  • Rétablir les modifications apportées au pipeline.
  • Collaborez efficacement avec l'équipe tout en assurant un contrôle centralisé.

Avant de commencer

  • La gestion du contrôle des sources est compatible avec les dépôts GitHub, Bitbucket Server, Bitbucket Cloud et Gitlab.
  • OAuth GitHub n'est pas pris en charge.
  • La gestion du contrôle du code source n'est compatible qu'avec les pipelines par lots.
  • La gestion du contrôle des sources n'accepte que les fichiers JSON de conception de pipeline pour les opérations push et pull. Les configurations d'exécution ne sont pas acceptées.
  • La taille maximale du dépôt associé est de 5 Go.

Rôles et autorisations requis

La gestion du contrôle des sources dans Cloud Data Fusion comprend deux opérations clés:

  • Configurer des dépôts de contrôle des sources
  • Synchroniser des pipelines avec des dépôts Git à l'aide d'opérations push et pull

Pour obtenir les autorisations nécessaires pour utiliser la fonctionnalité de gestion du contrôle des sources, demandez à votre administrateur de vous accorder l'un des rôles prédéfinis suivants sur votre projet:

Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.

Vous pouvez également obtenir les autorisations requises via d'autres rôles prédéfinis.

Configurer un dépôt Git

Pour créer un dépôt Git dans GitHub, suivez les instructions décrites dans la section Créer un dépôt.

Pour en savoir plus sur les jetons d'accès personnels dans GitHub et d'autres systèmes de contrôle des versions, consultez les pages suivantes:

Connecter un dépôt Git à Cloud Data Fusion

Cloud Data Fusion vous permet de configurer et de connecter votre dépôt Git dans l'onglet "Gestion du contrôle des sources" pour chaque espace de noms. Pour associer un espace de noms à votre dépôt Git, procédez comme suit:

Console

  1. Dans Cloud Data Fusion Studio, cliquez sur Menu.
  2. Cliquez sur Administrateur de l'espace de noms.
  3. Sur la page Administrateur de l'espace de noms, cliquez sur l'onglet Gestion du contrôle des sources.
  4. Cliquez sur Associer un dépôt.
  5. Saisissez les informations suivantes :

    • Fournisseur: choisissez un fournisseur de services Git, tel que GitHub ou GitLab.
    • URL du dépôt: saisissez l'URL permettant d'accéder à votre dépôt. Pour GitHub, l'URL du dépôt est https://github.com/HOST/REPO.
    • Branche par défaut (facultatif): saisissez la branche initiale du Git. Cette branche peut être différente de la branche par défaut configurée sur GitHub. Cette branche permet de synchroniser les pipelines, quelle que soit la branche par défaut sur GitHub.
    • Préfixe de chemin (facultatif): saisissez un préfixe pour le nom de votre pipeline, qui est enregistré dans le dépôt Git. Par exemple, si le nom de votre pipeline est DataFusionQuickStart et que vous spécifiez le préfixe namespaceName, le pipeline est enregistré sous le nom namespaceName/DataFusionQuickStart dans le dépôt Git.
    • Type d'authentification: Cloud Data Fusion vous permet d'utiliser le jeton d'accès personnalisé comme type d'authentification. Cette option est sélectionnée automatiquement.
    • Nom du jeton: saisissez un nom pouvant être associé au jeton.
    • Jeton: saisissez le jeton fourni par le dépôt GitHub.
    • Facultatif: Nom d'utilisateur: saisissez un nom d'utilisateur ou un propriétaire pour le jeton.
  6. Cliquez sur Valider. Attendez que la connexion soit validée.

  7. Une fois la configuration terminée, cliquez sur Enregistrer et fermer pour confirmer la configuration.

Connectez un dépôt Git à Cloud Data Fusion.

API REST

  1. Créez une clé secrète dans Cloud Data Fusion contenant le jeton d'accès personnel.

  2. Exécutez la commande suivante :

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" 
    ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/securekeys/PASSWORD_SECRET_KEY -X PUT -d '{ "description": "Example Secure Key","data": "PERSONAL_ACCESS_TOKEN"}'
    

    Remplacez les éléments suivants :

    • NAMESPACE_ID: ID de l'espace de noms.
    • PASSWORD_SECRET_KEY: nom de la clé secrète contenant le jeton d'accès personnel.
    • PERSONAL_ACCESS_TOKEN: jeton d'accès personnel GitHub.
  3. Exécutez la commande suivante :

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" 
    ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/repository -X PUT -d '{"test": "TEST_ONLY", "config": {"provider": "PROVIDER_TYPE", "link": "REPO_URL", "defaultBranch": "DEFAULT_BRANCH", "pathPrefix": "PATH_TO_DIRECTORY", "auth": {"type": "AUTH_TYPE", "patConfig": {"passwordName": "PASSWORD_SECRET_KEY", "username": "USER_NAME"}}}}'
    

    Remplacez les éléments suivants :

    • NAMESPACE_ID: ID de l'espace de noms.
    • TEST_ONLY: définissez cette valeur sur true si vous souhaitez uniquement valider la configuration et non l'ajouter.
    • PROVIDER_TYPE: nom du fournisseur Git, c'est-à-dire GITHUB.
    • REPO_URL: URL du dépôt à associer. Utilisez une URL https (par exemple, https://github.com/user/repo.git).
    • DEFAULT_BRANCH: branche utilisée pour les opérations d'envoi et de retrait. Si elle est omise, la branche configurée par défaut du dépôt est utilisée (par exemple, la branche principale).
    • PATH_TO_DIRECTORY: chemin d'accès au répertoire du dépôt où les fichiers de configuration sont stockés.
    • AUTH_TYPE: type d'authentification. Seule l'option PAT est acceptée. Consultez Jeton d'accès personnel précis dans GitHub.
    • PASSWORD_SECRET_KEY: nom de la clé secrète contenant le jeton d'accès personnel pour le type d'authentification PAT.
    • USER_NAME: vous pouvez omettre cette valeur pour le type d'authentification PAT.

Synchroniser des pipelines Cloud Data Fusion avec un dépôt distant

Une fois que vous avez configuré un dépôt Git avec un espace de noms, vous pouvez déployer et extraire des pipelines, et les synchroniser avec le dépôt Git.

Transférer des pipelines de Cloud Data Fusion vers un dépôt Git

Pour synchroniser plusieurs pipelines déployés à partir d'un espace de noms vers un dépôt Git, procédez comme suit:

Console

  1. Dans Cloud Data Fusion Studio, cliquez sur Menu.
  2. Cliquez sur Administrateur de l'espace de noms.
  3. Sur la page Administrateur de l'espace de noms, cliquez sur l'onglet Gestion du contrôle des sources.
  4. Recherchez le dépôt Git avec lequel vous souhaitez synchroniser, puis cliquez sur Synchroniser les pipelines.
  5. Cliquez sur l'onglet Pipelines d'espace de noms.
  6. Recherchez et sélectionnez les pipelines que vous souhaitez pousser vers le dépôt Git.

    Si la dernière version du pipeline est transmise ou extraite du dépôt Git, l'état Connected to Git (Connecté à Git) affiche Connected. Si le pipeline n'a jamais été poussé vers GitHub, l'état Connecté à Git est vide (-).

    Si vous déployez une version plus récente d'un pipeline déjà synchronisé avec le dépôt Git, l'état Connecté à Git passe de Connected à vide (-).

  7. Cliquez sur Effectuer un transfert vers le dépôt.

  8. Saisissez un message de validation, puis cliquez sur OK.

    L'opération de transfert démarre et un message s'affiche indiquant que les pipelines sélectionnés sont transférés vers le dépôt distant.

Transférez des pipelines de Cloud Data Fusion vers un dépôt Git.

Une fois l'opération de transfert terminée, un message de réussite s'affiche indiquant le nombre de pipelines transférés vers le dépôt distant.

Si l'opération de transfert échoue, vérifiez le pipeline sur GitHub pour voir s'il s'agit de la dernière version. Un message d'erreur s'affiche pour chaque opération de transfert échouée. Pour afficher les détails de l'erreur, développez le message d'erreur.

Vous pouvez également déployer des pipelines individuels dans un dépôt Git à partir du studio de conception de pipelines:

  1. Dans Cloud Data Fusion Studio, cliquez sur Menu.
  2. Cliquez sur Liste.
  3. Cliquez sur le pipeline que vous souhaitez pousser vers le dépôt Git.
  4. Sur la page du pipeline, cliquez sur Actions > Mettre à jour le dépôt.
  5. Saisissez un message de validation, puis cliquez sur OK.

Transférez des pipelines depuis Pipeline Studio.

API REST

  1. Déployez un ensemble de pipelines de Cloud Data Fusion vers le dépôt Git:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"
    ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/repository/apps/push -X POST
    -d '{"apps": ["PIPELINE_NAME_1", "PIPELINE_NAME_2"]}, "commitMessage": "COMMIT_MESSAGE"'
    

    Remplacez les éléments suivants :

    • NAMESPACE_ID: ID de l'espace de noms.
    • PIPELINE_NAME_1, PIPELINE_NAME_2 : noms des pipelines à pousser.
    • COMMIT_MESSAGE: message de commit pour le commit Git.

    La réponse contient l'ID de l'opération de transfert. Exemple :

    RESPONSE
    {
    "id": OPERATION_ID
    }
    
  2. Pour interroger l'état de l'opération de transfert, exécutez la commande suivante:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" 
    ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/operations/OPERATION_ID
    

    Remplacez les éléments suivants :

    • NAMESPACE_ID: ID de l'espace de noms.
    • OPERATION_ID: ID de l'opération reçu de l'opération d'envoi.

    La réponse contient l'état de l'opération de transfert. Exemple :

    RESPONSE
    {
    "id": OPERATION_ID
    "done": True/False
    "status": STARTING/RUNNING/SUCCEEDED/FAILED
    "error": {"message": ERROR_MESSAGE, "details":[{"resourceUri": RESOURCE, "message": ERROR_MESSAGE}]}
    }
    

    Pour vérifier si l'opération de transfert est terminée, vérifiez la propriété done dans la réponse. Si l'opération a échoué, consultez la propriété error pour en savoir plus.

Extraire des pipelines à partir d'un dépôt Git dans Cloud Data Fusion

Pour synchroniser plusieurs pipelines à partir d'un dépôt Git avec votre espace de noms, procédez comme suit:

Console

  1. Dans Cloud Data Fusion Studio, cliquez sur Menu.
  2. Cliquez sur Administrateur de l'espace de noms.
  3. Sur la page Administrateur de l'espace de noms, cliquez sur l'onglet Gestion du contrôle des sources.
  4. Recherchez le dépôt Git avec lequel vous souhaitez synchroniser, puis cliquez sur Synchroniser les pipelines.
  5. Cliquez sur l'onglet Pipelines de dépôt. Tous les pipelines stockés dans le dépôt Git s'affichent.
  6. Recherchez et sélectionnez les pipelines que vous souhaitez extraire du dépôt Git dans votre espace de noms Cloud Data Fusion.
  7. Cliquez sur Extraire du dépôt.

    L'opération de récupération démarre et un message s'affiche indiquant que les pipelines sélectionnés sont récupérés à partir du dépôt distant. Cloud Data Fusion recherche des fichiers JSON dans le chemin d'accès configuré, puis les extrait et les déploie en tant que pipelines dans Cloud Data Fusion.

Extrayez des pipelines à partir d'un dépôt Git dans Cloud Data Fusion.

Une fois l'opération de récupération terminée, un message de réussite s'affiche, indiquant le nombre de pipelines extraits du dépôt distant.

Si l'opération de récupération échoue, un message d'erreur s'affiche. Pour afficher les détails de l'erreur, développez le message d'erreur.

Vous pouvez également extraire des pipelines individuels d'un dépôt Git vers un espace de noms à partir du studio de conception de pipeline:

  1. Dans Cloud Data Fusion Studio, cliquez sur Menu.
  2. Cliquez sur Liste.
  3. Cliquez sur le pipeline que vous souhaitez extraire du dépôt Git.
  4. Sur la page du pipeline, cliquez sur Actions > Extraire du dépôt.

Extrayez des pipelines à partir du studio de conception de pipelines.

API REST

  1. Extrayez un ensemble de pipelines du dépôt Git vers Cloud Data Fusion:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" 
    ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/repository/apps/pull -X POST -d '{"apps": ["PIPELINE_NAME_1", "PIPELINE_NAME_2"]}'
    

    Remplacez les éléments suivants :

    • NAMESPACE_ID: ID de l'espace de noms.
    • PIPELINE_NAME_1, PIPELINE_NAME_2 : noms des pipelines à extraire.

    La réponse contient l'ID de l'opération de pull. Exemple :

    RESPONSE
    {
    "id": OPERATION_ID
    }
    
  2. Pour interroger l'état de l'opération de pull, exécutez la commande suivante:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" 
    ${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/operations/OPERATION_ID
    

    Remplacez les éléments suivants :

    • NAMESPACE_ID: ID de l'espace de noms.
    • OPERATION_ID: ID de l'opération reçu de l'opération de pull.

    La réponse contient l'état de l'opération de pull. Exemple :

    RESPONSE
    {
    "id": OPERATION_ID
    "done": True/False
    "status": STARTING/RUNNING/SUCCEEDED/FAILED
    "error": {"message": ERROR_MESSAGE, "details":[{"resourceUri": RESOURCE, "message": ERROR_MESSAGE}]}
    }
    

    Pour vérifier si l'opération de pull est terminée, vérifiez la propriété done dans la réponse. Si l'opération a échoué, consultez la propriété error pour en savoir plus.

Supprimer la configuration du dépôt Git

Pour supprimer la configuration du dépôt Git d'un espace de noms, procédez comme suit:

Console

  1. Dans Cloud Data Fusion Studio, cliquez sur Menu.
  2. Cliquez sur Administrateur de l'espace de noms.
  3. Sur la page Administrateur de l'espace de noms, cliquez sur l'onglet Gestion du contrôle des sources.
  4. Pour la configuration du dépôt Git que vous souhaitez supprimer, cliquez sur > Supprimer.

API REST

Supprimez la configuration du dépôt Git:

curl -H "Authorization: Bearer $(gcloud auth print-access-token)"
${CDAP_ENDPOINT}/v3/namespaces/NAMESPACE_ID/repository -X DELETE

Remplacez NAMESPACE_ID par l'ID de l'espace de noms.

Étape suivante