Cette page explique comment gérer les pipelines à l'aide du contrôle de code source dans Cloud Data Fusion via des dépôts Git.
À propos de la gestion du contrôle du code source
Cloud Data Fusion vous permet de concevoir visuellement des pipelines pour les intégrations ETL et ELT. Pour mieux gérer les pipelines entre le développement et la production, Cloud Data Fusion permet la gestion du contrôle du code source des pipelines à l'aide de GitHub et d'autres systèmes de contrôle des versions.
La gestion du contrôle du code source dans Cloud Data Fusion vous permet d'effectuer les opérations suivantes :
- 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 centralisé.
- Examiner et auditer les modifications apportées au pipeline.
- Rétablissez 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 du code source est compatible avec l'intégration aux dépôts GitHub, Bitbucket Server, Bitbucket Cloud et GitLab.
- GitHub OAuth 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 de code source n'accepte que les fichiers JSON de conception de pipeline pour les opérations d'envoi et d'extraction. Les configurations d'exécution ne sont pas acceptées.
- La taille du dépôt associé est limitée à 5 Go.
Rôles et autorisations nécessaires
La gestion du contrôle du code source dans Cloud Data Fusion comprend deux opérations clés :
- Configurer des dépôts de contrôle du code source
- 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 du code source, demandez à votre administrateur de vous accorder l'un des rôles prédéfinis suivants sur votre projet :
Configurer le dépôt de contrôle du code source :
- Opérateur Cloud Data Fusion (
roles/datafusion.operator) - Éditeur Cloud Data Fusion (
roles/datafusion.editor) - Administrateur Cloud Data Fusion (
roles/datafusion.admin)
- Opérateur Cloud Data Fusion (
Synchronisez les pipelines à l'aide d'une opération push ou pull à partir d'un espace de noms :
- Opérateur Cloud Data Fusion (
roles/datafusion.operator) - Développeur Cloud Data Fusion (
roles/datafusion.developer) - Éditeur Cloud Data Fusion (
roles/datafusion.editor) - Administrateur Cloud Data Fusion (
roles/datafusion.admin)
- Opérateur Cloud Data Fusion (
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 avec 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 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 gestion 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 de code source" pour chaque espace de noms. Pour associer un espace de noms à votre dépôt Git, procédez comme suit :
Console
- Dans Cloud Data Fusion Studio, cliquez sur Menu.
- Cliquez sur Administrateur de l'espace de noms.
- Sur la page Administrateur d'espaces de noms, cliquez sur l'onglet Gestion du contrôle de code source.
- Cliquez sur Associer un dépôt.
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 celle configurée par défaut sur GitHub. Cette branche est utilisée pour synchroniser les pipelines, quelle que soit la branche par défaut sur GitHub.
- Préfixe de chemin d'accès (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
DataFusionQuickStartet que vous spécifiez le préfixenamespaceName, le pipeline est enregistré sous le nomnamespaceName/DataFusionQuickStartdans 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 qui peut ê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.
Cliquez sur Valider. Attendez que la connexion soit validée.
Une fois la configuration terminée, cliquez sur Enregistrer et fermer pour la confirmer.

API REST
Créez une clé secrète dans Cloud Data Fusion contenant le jeton d'accès personnel.
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.
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 surtruesi vous souhaitez uniquement valider la configuration et non l'ajouter.PROVIDER_TYPE: nom du fournisseur Git, c'est-à-direGITHUB.REPO_URL: URL du dépôt à associer. Utilisez une URLhttps, par exemplehttps://github.com/user/repo.git.DEFAULT_BRANCH: branche utilisée pour les opérations d'envoi et d'extraction. Si aucune valeur n'est spécifiée, la branche configurée par défaut dans le 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ù sont stockés les fichiers de configuration.AUTH_TYPE: type d'authentification. Seule la régionPATest compatible. Consultez Jetons d'accès personnels précis dans GitHub.PASSWORD_SECRET_KEY: nom de la clé secrète contenant le jeton d'accès personnel pour le type d'authentificationPAT.USER_NAME: vous pouvez omettre cette valeur pour le type d'authentificationPAT.
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 envoyer 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
- Dans Cloud Data Fusion Studio, cliquez sur Menu.
- Cliquez sur Administrateur de l'espace de noms.
- Sur la page Administrateur d'espaces de noms, cliquez sur l'onglet Gestion du contrôle de code source.
- Recherchez le dépôt Git avec lequel vous souhaitez effectuer la synchronisation, puis cliquez sur Synchroniser les pipelines.
- Cliquez sur l'onglet Pipelines d'espace de noms.
Recherchez et sélectionnez les pipelines que vous souhaitez transférer vers le dépôt Git.
Si la dernière version du pipeline est envoyée vers ou extraite du dépôt Git, l'état Connecté à Git affiche
Connected. Si le pipeline n'a jamais été envoyé à 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 (-).Cliquez sur Effectuer un transfert vers le dépôt.
Saisissez un message de commit, puis cliquez sur OK.
L'opération d'envoi démarre et un message s'affiche pour indiquer que les pipelines sélectionnés sont en cours d'envoi vers le dépôt distant.

Une fois l'opération push terminée, un message de réussite s'affiche, indiquant le nombre de pipelines qui ont été transférés vers le dépôt distant.
Si l'opération push échoue, vérifiez dans GitHub que le pipeline est la dernière version. Un message d'erreur s'affiche pour chaque opération d'envoi ayant échoué. Pour afficher les détails de l'erreur, développez le message d'erreur.
Vous pouvez également transférer des pipelines individuels vers un dépôt Git depuis l'atelier de conception de pipelines :
- Dans Cloud Data Fusion Studio, cliquez sur Menu.
- Cliquez sur Liste.
- Cliquez sur le pipeline que vous souhaitez transférer vers le dépôt Git.
- Sur la page du pipeline, cliquez sur Actions > Envoyer au dépôt.
- Saisissez un message de commit, puis cliquez sur OK.

API REST
Transférez 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 à transférer.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 }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_IDRemplacez les éléments suivants :
NAMESPACE_ID: ID de l'espace de noms.OPERATION_ID: ID d'opération reçu de l'opération d'envoi.
La réponse contient l'état de l'opération d'envoi. 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 d'envoi est terminée, vérifiez la propriété
donedans la réponse. Si l'opération a échoué, consultez la propriétéerrorpour en savoir plus.
Extraire des pipelines d'un dépôt Git vers Cloud Data Fusion
Pour synchroniser plusieurs pipelines d'un dépôt Git vers votre espace de noms, procédez comme suit :
Console
- Dans Cloud Data Fusion Studio, cliquez sur Menu.
- Cliquez sur Administrateur de l'espace de noms.
- Sur la page Administrateur d'espaces de noms, cliquez sur l'onglet Gestion du contrôle de code source.
- Recherchez le dépôt Git avec lequel vous souhaitez effectuer la synchronisation, puis cliquez sur Synchroniser les pipelines.
- Cliquez sur l'onglet Pipelines de dépôt. Tous les pipelines stockés dans le dépôt Git s'affichent.
- Recherchez et sélectionnez les pipelines que vous souhaitez extraire du dépôt Git vers votre espace de noms Cloud Data Fusion.
Cliquez sur Extraire du dépôt.
L'opération d'extraction démarre et un message s'affiche pour indiquer que les pipelines sélectionnés sont en cours d'extraction depuis le dépôt distant. Cloud Data Fusion recherche les fichiers JSON dans le chemin configuré, puis les extrait et les déploie en tant que pipelines dans Cloud Data Fusion.

Une fois l'opération d'extraction terminée, un message de réussite s'affiche, indiquant le nombre de pipelines extraits du dépôt distant.
Si l'opération d'extraction é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 de l'atelier de conception de pipelines :
- Dans Cloud Data Fusion Studio, cliquez sur Menu.
- Cliquez sur Liste.
- Cliquez sur le pipeline que vous souhaitez extraire du dépôt Git.
- Sur la page du pipeline, cliquez sur Actions > Extraire du dépôt.

API REST
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 d'extraction. Exemple :
RESPONSE { "id": OPERATION_ID }Pour interroger l'état de l'opération d'extraction, 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_IDRemplacez les éléments suivants :
NAMESPACE_ID: ID de l'espace de noms.OPERATION_ID: ID d'opération reçu de l'opération d'extraction.
La réponse contient l'état de l'opération d'extraction. 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 d'extraction est terminée, vérifiez la propriété
donedans la réponse. Si l'opération a échoué, consultez la propriétéerrorpour 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
- Dans Cloud Data Fusion Studio, cliquez sur Menu.
- Cliquez sur Administrateur de l'espace de noms.
- Sur la page Administrateur d'espaces de noms, cliquez sur l'onglet Gestion du contrôle de code source.
- 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.
Étapes suivantes
- En savoir plus sur l'utilisation d'un dépôt GitHub pour gérer les pipelines