HCL Commerce Version 9.1.8.0 or later

Mise à niveau de la version de lot pour les canaux

Pour utiliser la dernière version de vos composants Ingest, l'approche privilégiée consiste à mettre à niveau vos pipelines à l'aide du menu contextuel Version dans l'éditeur NiFi.

About this task

Les pipelines NiFi sont construits à partir de canaux, chaque canal contenant des composants qui déterminent la manière dont le flux entrant doit être traité. Les canaux sont souvent utilisés dans plusieurs connecteurs et des problèmes peuvent parfois survenir avec ces canaux. Dans ce cas, ils doivent être mis à jour via NiFi. Le processus de mise à niveau décrit ici s'applique aux canaux dans tout NiFi. Il va rechercher toutes les occurrences d'un canal et tenter de mettre à niveau leur version. Il est possible d'utiliser l'API http://Ingest_HOST:Ingest_PORT/upgrade pour mettre à niveau des canaux individuels, mais ce processus est beaucoup plus long, car cette API est spécifique au connecteur. Il ne va pas mettre à niveau les canaux dans l'ensemble de NiFi.

Procedure

Pour mettre à niveau vos composants de pipeline Ingest dans l'ensemble de NiFi :

  1. Ajoutez une nouvelle version de votre canal. Cela peut être fait de deux manières :
    1. Cliquez avec le bouton droit de la souris sur le canal choisi. Dans le menu qui apparaît, sélectionnez Version > Valider les modifications locales > . Un astérisque (symbole *) apparaîtra dans la barre de titre du canal. Cela indique qu'il y a des modifications locales dans ce canal.
    2. Vous pouvez également charger un descripteur de canal modifié ou mis à jour dans le registre. Pour plus d'instructions sur cette étape, voir Apache NiFi Registry System - Guide d'administration.
    Note: La barre d'état sous le titre du canal affiche des informations utiles sur votre mise à niveau. Une flèche pointant vers le haut dans un cercle rouge affiche le nombre de canaux qui peuvent être mis à jour à l'aide de http://Ingest_HOST:Ingest_PORT/pipe/{id}/upgradeVersion. Un point d'exclamation dans un cercle rouge indique le nombre de canaux qui ont des modifications locales et qui devront donc utiliser l'API http://Ingest_HOST:Ingest_PORT/pipe/{id}/revertVersion, puis http://Ingest_HOST:Ingest_PORT/pipe/{id}/upgradeVersion.
  2. Mettez à niveau la version du canal en cliquant avec le bouton droit de la souris sur le canal et en sélectionnant Variables > pipe.name. Trois réponses sont possibles :
    1. Si l'action est entièrement réussie, l'API REST renverra un code 200.
    2. Un résultat partiellement fructueux ou incomplet renvoie un code 409.
    3. Un résultat infructueux renvoie un code 409, ainsi qu'une liste détaillée des erreurs rencontrées.
    Si une requête a partiellement échoué ou entièrement échoué, émettez l'appel REST POST http://Ingest_HOST:Ingest_PORT//pipe/{pipe.name}/resetAndUpgrade. Cet appel permet au canal de revenir à sa version de base en supprimant toutes les modifications locales et de mettre automatiquement à niveau les canaux, si possible.

    Lorsque cet appel renvoie une réponse de 200 (réussite), notez le message détaillé dans le corps de la réponse. Chaque ligne décrit un canal qui contenait des modifications locales et doit donc être mise à jour à l'aide de l'API PUT http://Ingest_HOST:Ingest_PORT/connector. Ceci va appliquer à nouveau les modifications de la configuration du canal.

  3. Dans le cas d'un résultat 409, appliquez à nouveau vos modifications locales. Cela est nécessaire, car les modifications locales sont apportées non seulement manuellement, mais également pendant le processus de démarrage d'Ingest. Ces modifications locales de démarrage contiennent des modifications vitales pour s'assurer que la logique du connecteur ne se casse pas pour les différents environnements (de création, opérationnel). Examinez le contenu du corps de vos appels REST initiaux pour localiser les instances en double de connectorId, car ces mises à jour peuvent être regroupées en une seule requête. Par exemple,
    "pipeId:f53eb8e1-017a-1000-2179-f7f4c528f0ec, connectorId:auth.reindex, pipeName:DatabaseURLStage1f, pipeLabelName:URL Stage 1f (Content URL)"
        "pipeId:f53da399-017a-1000-bfaf-0a1e2104cc99, connectorId:auth.content, pipeName:DatabaseURLStage1f, pipeLabelName:URL Stage 1f (Content URL)"
        "pipeId:f544d053-017a-1000-394b-a19ed82ba8c4, connectorId:live.reindex, pipeName:DatabaseURLStage1f, pipeLabelName:URL Stage 1f (Content URL)"
        "pipeId:f542fb64-017a-1000-eef0-2a643ac00868, connectorId:live.content, pipeName:DatabaseURLStage1f, pipeLabelName:URL Stage 1f (Content URL)"   
        "pipeId:f542fb64-017a-1000-eef0-2a643ac00868, connectorId:live.content, pipeName:DatabaseURLStage1f, pipeLabelName:URL Stage 1f (Content URL)"
    
  4. Recherchez vos modifications locales. Pour chaque connectorId, appelez GET http://Ingest_HOST:Ingest_PORT/connectors/{connectorId}. Analysez la réponse pour trouver les entrées de canal avec le nom {pipeName} et le libellé : {pipeLabelName}.
  5. Créez un corps de mise à jour en copiant l'intégralité de l'entrée de canal avec toutes les propriétés, à l'exception de :
    • "name": "connector.name"
    • "name": "pipe.name"
    Collez l'entrée de canal dans le corps comme suit.
    {
        "name": {connectorId},
        "pipes": [
              //PIPES
        ]
    }
    
    Par exemple,
    {
        "name": "auth.reindex",
        "pipes": [
            {
                "name": "DatabaseURLStage1f",
                "label": "URL Stage 1f (Content URL)",
                "properties": [
                    {
                        "name": "scroll.bucket.size",
                        "value": "1500",
                        "scope": {
                            "name": "Create Content URL	Document",
                            "type": "PROCESS_GROUP"
                        }
                    },
                    {
                        "name": "scroll.page.size",
                        "value": "100000",
                        "scope": {
                            "name": "Create Content	URL	Document",
                            "type": "PROCESS_GROUP"
                        }
                    },
                    {
                        "name": "Database User",
                        "value": "${AUTH_JDBC_USER_NAME}",
                        "scope": {
                            "name": "Database Connection Pool",
                            "type": "CONTROLLER_SERVICE"
                        }
                    },
                           ]
            }
        ]
    }
    
  6. Appliquez les mises à jour en copiant le corps de la mise à jour et en envoyant une demande avec ce contenu à PUT http://Ingest_HOST:Ingest_PORT/connectors.

Results

Appliquez ces trois étapes pour tous les canaux répertoriés dans les réponses REST et vous mettrez à jour vos canaux.