HCL Commerce Version 9.1.8.0 or later

Actualización de la versión por lotes para canalizaciones

Para utilizar la última versión de los componentes integrados, el método preferido es actualizar las canalizaciones utilizando el menú contextual Versión en el editor NiFi.

About this task

Las canalizaciones NiFi se construyen a partir de conexiones, y cada una contiene componentes que determinan cómo se va a procesar el flujo entrante. Los conductos se utilizan a menudo en varios conectores y a veces se pueden producir problemas con estas canalizaciones. En tales casos, deben actualizarse en toda la NiFi. El proceso de actualización que se describe aquí se aplica a las canalizaciones en la totalidad de NiFi; encontrará todas las apariciones de una canalización e intentará actualizar su versión. Es posible utilizar la API http://Ingest_HOST:Ingest_PORT/upgrade para actualizar las canalizaciones individuales, sin embargo, este es un proceso mucho más largo porque esta API es específica del conector. No actualizará las canalizaciones en todas las NiFi.

Procedure

Para actualizar los componentes de canalización existentes en todo NiFi:

  1. Añada una nueva versión de la canalización. Puede realizar esta acción de dos maneras.
    1. Pulse el botón derecho del ratón en la canalización elegida. En el menú que aparece, seleccione Versioó > Comnfirmar cambios locales > . Aparecerá un asterisco (símbolo *) en la barra de título del conducto. Esto indica que hay cambios locales en ese conducto.
    2. De forma alternativa, puede subir un descriptor de conducto modificado o actualizado al registro. Para obtener instrucciones sobre cómo hacerlo, consulte la guía del administrador del sistema del registro de Apache NiFi.
    Note: La barra de estado bajo el título del conducto muestra información útil sobre la actualización. Una flecha que apunta hacia arriba en un círculo rojo muestra el número de conductos que se pueden actualizar utilizando http://Ingest_HOST:Ingest_PORT/pipe/{id}/upgradeVersion. Un signo de exclamación en un círculo rojo muestra el número de canalizaciones que tienen cambios locales, por lo que tendrá que utilizar la API de http://Ingest_HOST:Ingest_PORT/pipe/{id}/revertVersion y, a continuación, http://Ingest_HOST:Ingest_PORT/pipe/{id}/upgradeVersion.
  2. Actualice la versión de la canalización pulsando con el botón derecho del ratón sobre el mismo y seleccionando Variables > pipe.name. Hay tres respuestas posibles:
    1. Si la acción es completamente satisfactoria, la API REST devolverá un código 200.
    2. Un resultado parcialmente satisfactorio o incompleto devuelve un código 409.
    3. Un resultado no correcto devuelve un código 409, junto con una lista detallada de los errores encontrados.
    Si una solicitud ha fallado parcialmente o ha fallado totalmente, emita la llamada REST POST http://Ingest_HOST:Ingest_PORT//pipe/{pipe.name}/resetAndUpgrade . Esta llamada revierte la canalización a su versión base eliminando todos los cambios locales y actualiza automáticamente las canalizaciones si es posible.

    Cuando esta llamada devuelva una respuesta 200 (correcta), anote el mensaje detallado en el cuerpo de la respuesta. Cada línea describe un conducto que contenía cambios locales y, por lo tanto, debe actualizarse utilizando la API PUT http://Ingest_HOST:Ingest_PORT/connector. Esto volverá a aplicar los cambios de configuración de la canalización.

  3. En el caso de un resultado 409, vuelva a aplicar los cambios locales. Esto es necesario porque los cambios locales no solo se realizan manualmente, sino también durante el proceso de inicio de Ingest. Estos cambios locales de inicio contienen modificaciones vitales para garantizar que la lógica del conector no se rompa para los distintos entornos (auth, live). Examine el contenido del cuerpo de las llamadas REST iniciales para localizar instancias duplicadas de connectorId, ya que dichas actualizaciones se pueden agrupar en una sola solicitud. Por ejemplo,
    "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. Busque los cambios locales. Para cada connectorId, llame a GET http://Ingest_HOST:Ingest_PORT/connectors/{connectorId}. Analice la respuesta para buscar entradas de barra vertical con nombre {pipeName} y etiqueta: {pipeLabelName}.
  5. Cree un cuerpo de actualización copiando toda la entrada de barra vertical con todas las propiedades excepto para:
    • "name": "connector.name"
    • "name": "pipe.name"
    Pegue la entrada de barra vertical en el cuerpo como se muestra a continuación.
    {
        "name": {connectorId},
        "pipes": [
              //PIPES
        ]
    }
    
    Por ejemplo,
    {
        "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. Aplique las actualizaciones copiando el cuerpo de actualización y enviando una solicitud con ese contenido a PUT http://Ingest_HOST:Ingest_PORT/connectors.

Results

Aplique estos tres pasos para todas las con canalizaciones listadas en REST respuestas, y actualizará las canalizaciones.