Passer au contenu principal
Cette section fournit des instructions pour déployer une application FRE 12 pour Windows dans Azure App Service. À titre d’exemple, deux projets WebJob utilisant des données d’un compte de stockage Azure sont présentés. Le traitement des fichiers est effectué à l’aide d’un conteneur Blob.
Avec ce scénario, vous obtiendrez les meilleurs résultats de reconnaissance pour de petits documents d’une page, tels que des factures, des reçus, etc.
Le déploiement de votre application dans App Service comprend plusieurs étapes :
  1. Préparer votre machine locale et votre instance d’application à l’aide des prérequis
  2. Effectuer les étapes préparatoires avant de déployer votre application
  3. Déployer et exécuter votre application dans App Service
Utilisez les exemples de code fournis dans les instructions ci-dessous.

Prérequis

Ordinateur local

Avant de créer votre App Service, préparez votre ordinateur local avec la configuration suivante :
  • Visual Studio 2019 et ses modules de développement d’applications pour Azure (consultez Fonctionnalités Azure dans Visual Studio ou utilisez Visual Studio Installer pour télécharger ces modules)
  • SDK Azure (téléchargez-le ici)
  • .NET Framework 4.7.2
  • package NuGet pour utiliser Azure Storage et les conteneurs Blob :
    • Azure.Storage.Blobs (téléchargez-le ici)
    • Azure.Storage.Queues (téléchargez-le ici)
    • Newtonsoft.Json (téléchargez-le ici)
    • System.IO.Compression.ZipFile (téléchargez-le ici)
  • wrapper ABBYY FineReader Engine pour .NET Framework 4.7 (dans le dossier C:\ProgramData\ABBYY\SDK\12\FineReader Engine\Inc.NET interops après l’installation développeur)
  • interface IFileWriter redéfinie pour fonctionner avec les conteneurs Blob (voir l’exemple ci-dessous)
  • Azure Storage Explorer (facultatif : téléchargez-le ici)
  • Machine virtuelle dans votre compte Azure destinée aux procédures de licence. Pour la configuration ultérieure, vous aurez besoin de :
    • Adresse IP
    • Port de connexion ouvert (par défaut ou défini par l’utilisateur). Pour l’ouvrir, configurez le pare-feu
    • Paramètres de connexion du protocole réseau Sockets

Étapes préparatoires

Les étapes préparatoires doivent être effectuées sur votre machine locale. En les réalisant, vous préparerez tous les paramètres et fichiers nécessaires pour commencer le déploiement de votre application :
  1. Créez une archive contenant ABBYY FineReader Engine Library (par exemple, LibraryPackage.zip). La liste des fichiers figure dans le fichier FREngineDistribution.csv.
    Important ! Si vous disposez d’un espace de stockage limité (par exemple, si vous utilisez un App Service Plan avec 1 Go d’espace), nous vous recommandons d’utiliser l’option /extract pour créer un package ABBYY FineReader Engine personnalisé de taille minimale. Le reste de l’espace de stockage sera utilisé pour le traitement des fichiers.
    Lors de la création de l’archive, gardez à l’esprit que les paramètres de licence d’ABBYY FineReader Engine doivent être configurés en fonction des paramètres de la machine virtuelle :
    • Le fichier LicensingSettings.xml doit être configuré pour la configuration Network (voir Utilisation du fichier LicensingSettings.xml).
    • Le protocole réseau Sockets doit être utilisé.
    • Le fichier de jeton de licence en ligne doit se trouver dans le dossier Bin64.
  2. Créez un compte de stockage Azure (frestorage dans cet article). Vous trouverez toutes les instructions nécessaires sur le site web Azure.
  3. Créez votre App Service selon vos besoins (voir les instructions ici).
  4. Créez deux conteneurs Blob dans frestorage :
    • fre-lib - pour les fichiers ABBYY FineReader Engine
    • processing-container - pour les résultats du traitement
  5. Téléversez LibraryPackage.zip dans le conteneur fre-lib de la manière la plus pratique pour vous (à l’aide de .NET, PowerShell, d’un script Python ou des applications Azure Storage Explorer/Azure Portal).
  6. Déployez et configurez la machine virtuelle avec les paramètres de licence dans votre compte Azure :
    • Installez l’utilitaire License Manager à l’aide de installLM.exe depuis LibraryPackage.zip.
    • Configurez le protocole réseau Sockets dans le fichier LicensingSettings.xml, puis redémarrez le service de licence.
    • Assurez-vous qu’Azure App Service peut accéder au port de connexion du service de licence (ajustez les règles du Pare-feu Windows sur la machine virtuelle).
    • Activez votre licence (pour la protection logicielle uniquement ; la protection en ligne ne nécessite pas d’activation).
  7. Créez deux files d’attente dans frestorage :
    • processing-queue - pour définir les tâches de traitement des fichiers
    • status-queue - pour signaler l’achèvement des tâches
  8. Créez deux projets Azure WebJob (.NET Framework) dans Visual Studio 2019 pour travailler avec frestorage :
    • FreDeployerJob - pour déployer LibraryPackage.zip vers App Service (voir la liste de ses fichiers : Config.cs, Functions.cs, Program.cs ci-dessous)
    • FreProcessorJob - pour le traitement des documents (voir la liste de ses fichiers : Config.cs, Functions.cs, Program.cs, EngineLoader.cs, IFileWriter.cs, Processor.cs ci-dessous)

Déploiement et exécution d’ABBYY FineReader Engine dans App Service

Pour déployer ABBYY FineReader Engine :
  1. Publiez FreDeployerJob sur Azure App Service à l’aide de Visual Studio (définissez Triggered comme WebJob Type).
  2. Ouvrez votre App Service dans le portail Azure.
  3. Ouvrez la section WebJobs de votre App Service.
  4. Recherchez FreDeployerJob dans la liste des WebJobs.
  5. Lancez FreDeployerJob par un clic droit, puis la commande Run dans l’onglet WebJobs.
Vous pouvez accéder à l’onglet Logs pour vérifier le résultat du déploiement. Si celui-ci réussit, LibraryPackage.zip est téléversé depuis le conteneur fre-lib et déployé dans le dossier %HOME_EXPANDED% accessible à toutes les entités dans App Service. Pour déployer FreProcessorJob, publiez FreProcessorJob sur Azure App Service à l’aide de Visual Studio (définissez Continuous comme WebJob Type). FreProcessorJob apparaîtra alors dans la liste des onglets WebJobs de votre App Service. Pour traiter un fichier :
  1. Téléversez le fichier que vous souhaitez traiter dans le processing-container.
  2. Ajoutez un message JSON pour une nouvelle tâche de traitement au format {“blob-item-name” : “file_name”} dans le processing-queue. Si vous téléversez Demo.tif dans le processing-container, votre message doit être :
  1. Attendez que la tâche soit terminée. Dès que la nouvelle tâche est définie, FreProcessorJob commence à traiter en mémoire le fichier spécifié. La status-queue contiendra des entrées concernant l’exécution de cette tâche.
  2. Recherchez le fichier de sortie dans le processing-container.
  1. FreProcessorJob fonctionne comme un process mono-thread. Si vous souhaitez traiter vos fichiers en parallèle, vous devez créer plusieurs FreProcessorJob qui écouteront la même file d’attente. 2. Chaque FreProcessorJob supplémentaire consomme davantage de mémoire. Tenez-en compte lors de l’achat de votre Service Plan. Par exemple, avec Azure Free Service Plan, il est préférable de n’avoir qu’un seul FreProcessorJob, qui consomme peu de mémoire et garantit ainsi la stabilité du traitement des fichiers. 3. L’utilisation d’un seul FreProcessorJob ne convient pas au traitement de documents volumineux comportant plusieurs pages. Dans ce cas, envisagez plutôt la reconnaissance de votre document dans Azure Cloud Service ou Azure Virtual Machine que dans App Service.

Exemples de code

Cette section présente des exemples de code utilisés pour déployer et mettre en œuvre l’API ABBYY FineReader Engine dans App Service.

FreDeployerJob:

FreProcessorJob: