Débogage des fonctions Azure sur une machine locale avec IronOCR
Problèmes lors de l'exécution locale d'Azure
Les exceptions les plus courantes sont les suivantes :
- Erreur lors du déploiement de Tesseract pour IronOCR
- Échec de la localisation de 'libtesseract-5'
- Impossible de trouver 'libtesseract-5'
- Échec de la localisation du Tesseract-5
- Erreur lors de la localisation du fichier de configuration du déploiement à l'adresse suivante : \bin\runtimes\win-x64\native\IronOcr.Native.deployment.json
- IronOCR : Fichier .traineddata manquant pour 'EnglishBest' qui devrait se trouver à l'adresse suivante
Problème avec les dépendances lors de l'exécution locale d'Azure Functions
Lors de l'exécution locale d'Azure, l'utilisation d'Azurite(VS2022) ou l'émulateur de stockage Azure(VS2019)un répertoire bin supplémentaire est créé, que l'émulateur de stockage utilise pour le déploiement. Seuls les fichiers DLL sont copiés dans ce répertoire, de sorte que les logiciels qui nécessitent des fichiers supplémentaires ne fonctionneront pas et risquent de générer l'exception susmentionnée.
Vous pouvez résoudre ce problème en copiant le répertoire des runtimes dans le répertoire bin séparé utilisé par l'émulateur de stockage. Nous recommandons d'effectuer cette opération en tant qu'événement postérieur à la construction(voir ci-dessous pour les instructions) en cas d'exécution locale(car recompile/build ramènera le répertoire bin à son état d'origine). Vous ne rencontrerez pas ce problème lors d'un déploiement dans le nuage.
- Problème : Lorsqu'un projet Azure Function est exécuté localement, il crée un dossier bin supplémentaire à partir duquel la fonction est exécutée. Cependant, il ne copie pas tous les fichiers nécessaires dans le dossier bin.
- Exemple : Un projet à C:\codeazure-functions-test qui se construit à C:\codeazure-functions-test\bin\Debug\netcoreapp3.1
- Solution : Copier le répertoire _C:\codeazure-functions-test\bin\Debug\netcoreapp3.1\runtimes pour qu'il existe également dans C:\codeazure-functions-test\bin\Debug\netcoreapp3.1\bin
Ecraser les fichiers existants si cela est demandé
Événement postérieur à la construction :
Cliquez avec le bouton droit de la souris sur le projet Azure Functions et sélectionnez Propriétés
Faites défiler vers le bas jusqu'à la section Événements
Entrez un événement post-construction de
XCOPY "$"(Répertoire cible)temps d'exécution" "$(Répertoire cible)bin/runtimes" /S /E /Y /I /R /D