HCL Commerce Version 9.1.10.0 or later

Migration des personnalisations du service Ingest

Si vous avez examiné les modifications récentes apportées à l'édition du service Ingest décrites dans Mise à jour de vos services Ingest et Query, vous pouvez procéder à la migration de vos personnalisations. Utilisez le guide suivant.

Before you begin

Si vous effectuez une mise à niveau vers la version 9.1.10.0 ou une version ultérieure à partir d'une version précédente de HCL Commerce Search, mettez à niveau votre configuration ZooKeeper comme suit :
  1. Vérifiez qu'un nœud /connectors existe à l'intérieur du conteneur Zookeeper. Si le nœud est vide, il n'est pas nécessaire d'effectuer d'autres tâches.
  2. Si le nœud /connectors n'est pas vide, supprimez alors tous les connecteurs par défaut du nœud /connectors de ZooKeeper, à l'exception des descripteurs de connecteur par défaut qui sont personnalisés.
  3. Ne supprimez pas les descripteurs de connecteur à l'aide de l'API de suppression Ingest. Cela supprimera également les pipelines de connecteur de NiFi. Utilisez plutôt l'interpréteur de ligne de commande (CLI) Zookeeper pour effectuer des opérations de suppression.
HCL Commerce Version 9.1.10.0 or laterNote: A chaque redémarrage du service Ingest, le système recherche les connecteurs créés sur la console NiFi. Si l'un des pipelines de connecteur n'est pas présent sur la console NiFi, mais que le descripteur de connecteur est disponible dans Zookeeper, le service Ingest créera le pipeline pour ce descripteur de connecteur dans la console NiFi. Cette vérification est effectuée uniquement pour les descripteurs de connecteur créés par l'utilisateur. Ingest ignorera cette opération pour tout descripteur de connecteur personnalisé basé sur les connecteurs par défaut.

About this task

Pour toutes les versions, procédez comme suit avant d'installer les dernières images NiFi et NiFi Registry.

Procedure

  1. Sauvegarde de NiFi
    Si vous disposez de configurations de connecteur personnalisé, vous devez d'abord sauvegarder ces paramètres avant de poursuivre la migration. Votre descripteur de connecteur existant peut ne pas être compatible avec les connecteurs fournis par défaut les plus récents. Après la migration, téléchargez (GET à l'aide de l'API REST du service Ingest) la dernière configuration du connecteur, comparez et fusionnez manuellement les fichiers JSON du connecteur, puis appliquez à nouveau les connecteurs mis à jour.
    Pour sauvegarder la configuration du connecteur avant la migration, utilisez le nœud final de l'API de service Ingest pour extraire et télécharger le JSON du descripteur de connecteur :
    GET http://INGEST_HOSTNAME:INGEST_PORT/connectors
    Enregistrez cette réponse avec un nom approprié. Par exemple, si vous utilisez HCL Commerce version 9.1.10, vous pouvez sauvegarder la réponse de cette API en tant que connectors_v9110.json.
  2. Sauvegarder le registre NiFi
    Avant la migration, effectuez une sauvegarde de tous vos flux existants dans le NiFi Registry en les exportant. Par exemple, accédez à votre conteneur/pod NiFi Registry existant et exécutez la commande suivante sur chaque flux enregistré dans le NiFi Registry :
    sh /opt/nifi-registry/scripts/export_flow.sh 
            FLOWNAME > /opt/nifi-registry/FLOWNAME_v9110.json 
  3. Déployez les images NiFi et NiFi Registry les plus récentes
    Méthode Docker-Compose avec Docker
    1. Mettez à jour votre fichier [docker-compose].yml pour utiliser les dernières images NiFi/NiFi Registry. Aucun montage externe par défaut n'est impliqué pour NiFi et NiFi Registry. Toutefois, si vous avez ajouté un montage externe personnalisé, vous devez enregistrer vos données et les recréer.
    2. Bash dans votre conteneur ZooKeeper, exécutez zkCli.sh pour démarrer l'interface de ligne de commande ZooKeeper et effectuez deleteall /connectors pour supprimer les connecteurs existants.
    3. Démarrez vos conteneurs : docker-compose -f [your docker-compose].yml up -d
    Méthode Helm avec Kubernetes
    La procédure suivante doit être effectuée avant de déployer votre pod NiFi pour permettre à votre nouveau conteneur d'utiliser ce qui est fourni avec la dernière image (au lieu de réutiliser les métadonnées NiFi existantes actuellement stockées dans votre volume persistant) :
    1. Bash dans votre conteneur NiFi existant.
    2. Supprimez le fichier /opt/nifi/nifi-current/dockerdata/.data.version (voire tout ce qui se trouve dans ce répertoire dockerdata).
    3. Bash dans votre conteneur ZooKeeper existant.
    4. Exécutez zkCli.sh pour démarrer l'interface de ligne de commande ZooKeeper, exécutez "deleteall /connectors" pour supprimer la configuration existante des connecteurs.
    Ensuite, mettez à jour votre configuration de déploiement NiFi pour pointer vers les dernières images NiFi et NiFi Registry. Attendez que les pods soient en bon état avant de passer à l'étape suivante.
Note: APRES avoir déployé les dernières images NiFi et NiFi Registry, procédez comme suit :
  1. Mettre à jour NiFi
    Après avoir déployé la dernière image NiFi, téléchargez (GET à l'aide de l'API REST du service Ingest) la dernière configuration du connecteur, comparez et fusionnez manuellement les fichiers JSON du connecteur, puis appliquez à nouveau les connecteurs mis à jour.
    1. S'il existe des personnalisations de processeur NiFi, copiez le répertoire commerce-custom-search-processors-nar-9.1.x.x.nar vers /opt/nifi/nifi-current/extensions à l'intérieur du conteneur NiFi et redémarrez l'application NiFi.
    2. Utilisez le même nœud final d'API de service Ingest pour obtenir la dernière configuration du connecteur OOTB :
      GET http://INGEST_HOSTNAME:INGEST_PORT/connectors
      Enregistrez la réponse de cette API, par exemple comme connectors_v9110.json si vous utilisiez HCL Commerce version 9.1.10.
    3. Comparez les deux fichiers JSON pour fusionner manuellement les modifications, puis appliquez les mises à jour à NiFi à l'aide d'un POST REST sur le nœud final des connecteurs d'API Ingest fournissant le fichier JSON fusionné final dans le corps.
      POST http://INGEST_HOSTNAME:INGEST_PORT/connectors
  2. Mettre à jour le registre NiFi
    Fusionnez toutes les personnalisations applicables dans le registre NiFi et chargez-les à nouveau dans la console NiFi.
    1. Entrez votre nouveau conteneur/pod NiFi Registry. Exécutez la commande suivante sur chaque flux enregistré dans le NiFi Registry : 
      sh /opt/nifi-registry/scripts/export_flow.sh FLOWNAME > /opt/nifi-registry/FLOWNAME_v9110.json  
    2. Comparez les fichiers JSON entre les éditions pour déterminer les instructions propriétés/SQL qui doivent être modifiées, puis effectuez les modifications dans la nouvelle version du fichier JSON (par exemple, FLOWNAME_v910_updated.json).
    3. Mettez à jour votre environnement avec ces personnalisations qui ont été fusionnées à nouveau en les important à nouveau dans le registre NiFi (le cas échéant) :
      sh /opt/nifi-registry/scripts/import_flow.sh FLOWNAME /opt/nifi-registry/FLOWNAME_v9110_updated.json
    4. Utilisez l'une des méthodes suivantes (I ou II) pour mettre à jour les groupes canaux/processus dans NiFi avec une nouvelle version :
      Utilisation de l'API REST de mise à niveau du service Ingest
      A l'aide de l'URL suivante, exécutez l'API de mise à niveau à partir du service Ingest pour obtenir la dernière version des groupes canal/processus pour un connecteur particulier :
      http://INGEST_HOSTNAME:INGEST_PORT/connectors/{id}/upgrade
      1. Utilisez un corps vide.
      2. Exécutez l'API de mise à niveau plusieurs fois si le canal mis à niveau se trouve dans plusieurs connecteurs.
      Note: Cette méthode ne fonctionne pas avec les canaux dans les connecteurs de structure, les services en masse, le service de journalisation, etc.
      Utilisation de la console NiFi
      1. Dans la console NiFi, accédez au groupe canal/processus mis à niveau qui s'affiche avec une icône de flèche rouge.
      2. Cliquez avec le bouton droit de la souris sur le groupe canal/processus, puis accédez à Version > Modifier la version pour choisir la version souhaitée dans la liste des versions.
      3. Cliquez sur Modifier.