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

Cette page explique comment gérer des pipelines à l'aide du contrôle du code source 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 la gestion du contrôle des sources pour les pipelines à l'aide de GitHub.

La gestion du contrôle des sources dans Cloud Data Fusion vous permet d'effectuer les opérations suivantes:

  • Intégrer chaque espace de noms Cloud Data Fusion à GitHub
  • Gérez vos pipelines dans un dépôt Git central.
  • Examinez et auditez les modifications apportées au pipeline.
  • Annulez les modifications du pipeline.
  • Collaborer efficacement avec l’équipe tout en assurant un contrôle central.

Avant de commencer

  • Source Control Management n'est compatible qu'avec l'intégration aux dépôts GitHub.
  • GitHub OAuth n'est pas compatible.
  • La gestion du contrôle de code source n'est compatible qu'avec les pipelines de traitement par lot.
  • 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 compatibles.
  • La taille du dépôt associé ne doit pas dépasser 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 du code source
  • Synchroniser des pipelines avec des dépôts Git à l'aide d'opérations push et pull

Pour obtenir les autorisations dont vous avez besoin pour utiliser la fonctionnalité Gestion du contrôle des sources, demandez à votre administrateur de vous attribuer 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, consultez les documents suivants:

Connecter un dépôt Git avec 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 l'interface Web de Cloud Data Fusion, 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 le dépôt.
  5. Saisissez les informations suivantes :

    • Provider (Fournisseur) : sélectionnez un fournisseur de services Git. Sélectionnez GitHub, car Source Control Management n'est compatible qu'avec l'intégration aux dépôts GitHub.
    • Repository URL (URL du dépôt) : saisissez l'URL du dépôt accessible. Pour GitHub, l'URL du dépôt est https://github.com/HOST/REPO.
    • Default branch (Branche par défaut) (facultatif): saisissez la branche initiale de Git. Cette branche peut être différente de la branche par défaut configurée sur GitHub. Cette branche sera utilisée pour synchroniser les pipelines, quelle que soit la branche par défaut sur GitHub.
    • Préfixe du chemin (facultatif): saisissez un préfixe pour le nom de votre pipeline qui sera 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 sera enregistré en tant que 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.
    • Token (Jeton) : saisissez le jeton fourni par le dépôt GitHub.
    • User name (Nom d'utilisateur) (facultatif): saisissez un nom d'utilisateur ou un propriétaire pour le jeton.
  6. Cliquez sur Valider. Attendez que la connexion soit vérifiée.

  7. Une fois la configuration terminée, cliquez sur Save and close (Enregistrer et fermer) pour confirmer la configuration.

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

API REST

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

  2. Exécutez la commande ci-dessous.

    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 de GitHub
  3. Exécutez la commande ci-dessous.

    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éfini sur true si vous souhaitez uniquement valider la configuration et non ajouter
    • PROVIDER_TYPE: nom du fournisseur Git, à savoir 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 push et pull. Si cette valeur est omise, la branche configurée par défaut dans le dépôt sera 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 doivent être stockés
    • AUTH_TYPE: type d'authentification. Seul PAT est accepté. Consultez la section 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

Après avoir configuré un dépôt Git avec un espace de noms, vous pouvez transférer et extraire des pipelines, puis les synchroniser avec le dépôt Git.

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

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

Console

  1. Dans l'interface Web de Cloud Data Fusion, 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 que vous souhaitez synchroniser, puis cliquez sur Sync pipelines (Synchroniser les pipelines).
  5. Cliquez sur l'onglet Pipelines d'espace de noms.
  6. 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 transférée vers ou extraite du dépôt Git, l'état Connecté à Git affiche Connected. Si le pipeline n'a jamais été transféré vers GitHub, l'état Connected to Git (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 Connected to Git (Connexion à Git) passe de Connected à vide (-).

  7. Cliquez sur Déployer vers le dépôt.

  8. 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 de transfert vers le dépôt distant.

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

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

Si l'opération d'envoi échoue, vérifiez le pipeline dans GitHub pour voir s'il s'agit de la dernière version. Un message d'erreur s'affiche à chaque échec de l'opération de transfert. 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 le studio de conception de pipelines:

  1. Dans l'interface Web de Cloud Data Fusion, cliquez sur Menu.
  2. Cliquez sur Liste.
  3. Cliquez sur le pipeline que vous souhaitez transférer vers le dépôt Git.
  4. Sur la page du pipeline, cliquez sur Actions > Transférer vers le dépôt.
  5. Saisissez un message de commit, puis cliquez sur OK.

Transférer des pipelines depuis le studio de conception de pipelines

API REST

  1. Transférez un ensemble de pipelines depuis 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 d'envoi. Exemple :

    RESPONSE
    {
    "id": OPERATION_ID
    }
    
  2. Pour interroger l'état de l'opération d'envoi, 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 d'opération reçu de l'opération d'envoi push.

    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é done dans la réponse. Si l'opération a échoué, vérifiez la propriété error pour 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 avec votre espace de noms, procédez comme suit:

Console

  1. Dans l'interface Web de Cloud Data Fusion, 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 que vous souhaitez synchroniser, puis cliquez sur Sync pipelines (Synchroniser les pipelines).
  5. Cliquez sur l'onglet Pipelines de dépôt. Tous les pipelines stockés dans le dépôt Git sont affichés.
  6. Recherchez et sélectionnez les pipelines que vous souhaitez extraire du dépôt Git vers votre espace de noms Cloud Data Fusion.
  7. 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 sous le chemin configuré, puis les extrait et les déploie en tant que pipelines vers Cloud Data Fusion.

Extraire des pipelines d'un dépôt Git vers Cloud Data Fusion

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

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 depuis le studio de conception de pipelines:

  1. Dans l'interface Web de Cloud Data Fusion, 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.

Extraire des pipelines 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 d'extraction. Exemple :

    RESPONSE
    {
    "id": OPERATION_ID
    }
    
  2. 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_ID
    

    Remplacez 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é done dans la réponse. Si l'opération a échoué, vérifiez 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 l'interface Web de Cloud Data Fusion, 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.

Étapes suivantes