es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Error de validación de Datafactory npm (yml ci/cd pipelines)

He estado siguiendo la documentación de Microsoft para la implementación de CI/CD con Data Factory en un archivo yml. Sin embargo, sigo recibiendo un error de validación al intentar implementar pipelines de CI/CD en Azure Data Factory con un archivo yml, después de la instalación de npm.
Recibo el siguiente mensaje de error:

Error: Command failed: node /home/vsts/work/1/s/DataFactories/joaov1/build/downloads/main.js validate /home/vsts/work/1/s DataFactories/joaov1/subscriptions/000000-0000-0000-0000-864d437bd294/resourceGroups/rg-hi-joaov1-dev/providers/Microsoft.DataFactory/factories/adf-client-joaov1-dev

Ejecución finalizada….
Se encontró el registro de depuración npm, asegúrese de que la ruta coincida con la que se muestra en la salida de npm: /home/vsts/.npm/_logs/2021-12-01T21_20_55_974Z-debug.log

Estoy bastante seguro de que es un problema con la ruta, pero después de horas de investigación en línea todavía no puedo hacer que funcione…
Mi estructura de archivos es la siguiente:

View post on imgur.com

Y mi código es el siguiente:

Archivo YAML de ejemplo para validar y exportar una plantilla ARM en un artefacto de build

Se requiere un archivo package.json ubicado en el repositorio de destino

trigger:
– master

parameters:

– name: ‘dev’

– name: ‘test’

– name: ‘prod’

pool:
vmImage: ‘ubuntu-latest’

steps:

Instala Node y los paquetes npm guardados en su archivo package.json en la compilación

  • task: NodeTool@0
    inputs:
    versionSpec: ’10.x’
    displayName: ‘Instalar Node.js’

  • task: Npm@1
    inputs:
    command: ‘install’
    workingDir: ‘$(Build.Repository.LocalPath)/DataFactories/joaov1/build’ #reemplazar con la carpeta package.json
    verbose: true
    displayName: ‘Instalar paquete npm’

Valida todos los recursos de Data Factory en el repositorio. Obtendrá los mismos errores de validación que cuando se selecciona “Validar todo”.

Ingrese la suscripción y el nombre apropiados para la fábrica de origen.

  • task: Npm@1
    inputs:
    command: ‘custom’
    workingDir: ‘$(Build.Repository.LocalPath)/DataFactories/joaov1/build’ #reemplazar con la carpeta package.json
    customCommand: ‘run build validate $(Build.Repository.LocalPath)/DataFactories/joaov1/subscriptions/000000-0000-0000-974d-864d437bd294/resourceGroups/rg-hi-joaov1-dev/providers/Microsoft.DataFactory/factories/adf-client-joaov1-dev’
    displayName: ‘Validar’

Valida y, a continuación, genera la plantilla ARM en la carpeta de destino, que es lo mismo que seleccionar “Publicar” desde UX.

La plantilla ARM generada no se publica en la versión en vivo de la fábrica. La implementación debe hacerse mediante una canalización de CI/CD.

  • task: Npm@1
    inputs:
    command: ‘custom’
    workingDir: ‘$(Build.Repository.LocalPath)/DataFactories/joaov1/build’ #reemplazar con la carpeta package.json
    customCommand: ‘run build export $(Build.Repository.LocalPath)/DataFactories/joaov1/subscriptions/000000-0000-4aab-974d-864d437bd294/resourceGroups/rg-hi-joaov1-dev/providers/Microsoft.DataFactory/factories/adf-client-joaov1-dev “ArmTemplate”‘
    displayName: ‘Validar y generar plantilla ARM’

Publica el artefacto para ser utilizado como fuente en una canalización de lanzamiento.

  • task: PublishPipelineArtifact@1
    inputs:
    targetPath: ‘$(Build.Repository.LocalPath)/DataFactories/joaov1/build/ArmTemplate’ #reemplazar con la carpeta package.json
    artifact: ‘ArmTemplates’
    publishLocation: ‘pipeline’

Cualquier ayuda sería genial,
Muchas gracias,
Joao

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Basándose en el mensaje de error y en la estructura del archivo, parece que el problema podría estar en el comando personalizado de la etapa “Validar”. La ruta al recurso Data Factory parece ser incorrecta, ya que incluye un espacio después de “/home/vsts/work/1/s” y antes de “DataFactories”. Intente eliminar el espacio en el comando personalizado y verifique si eso resuelve el error de validación:

    - tarea: Npm@1
      inputs:
        command: 'custom'
        workingDir: '$(Build.Repository.LocalPath)/DataFactories/joaov1/build'
        customCommand: 'run build validate $(Build.Repository.LocalPath)/DataFactories/joaov1/subscriptions/000000-0000-0000-0000-864d437bd294/resourceGroups/rg-hi-joaov1-dev/providers/Microsoft.DataFactory/factories/adf-client-joaov1-dev'
      displayName: 'Validar'
    

    Si eso no soluciona el problema, verifique que la ruta al recurso Data Factory sea correcta y que los permisos estén configurados correctamente para que la canalización CI/CD pueda acceder a ella. Además, asegúrese de que los paquetes npm requeridos estén instalados correctamente y de que esté ejecutando la canalización con la versión correcta de Node.js.

Comments are closed.