このシナリオを使用すると、請求書や領収書などの小さな 1 ページ文書で最適な認識結果を得ることができます。 アプリケーションを App Service にデプロイするには、いくつかの手順があります。
- 前提条件に従って、ローカル マシンとアプリ インスタンスを準備する
- アプリケーションをデプロイする前に、準備手順を実行する
- App Service でアプリケーションをデプロイして実行する
前提条件
ローカル マシン
- Visual Studio 2019 および Azure 向けアプリケーション開発用モジュール (Visual Studio の Azure 機能を確認するか、Visual Studio Installer を使用してこれらのモジュールをダウンロードしてください)
- Azure SDK (こちらからダウンロード)
- .NET Framework 4.7.2
- Azure Storage および Blob コンテナーを操作するための NuGet パッケージ:
- .NET Framework 4.7 用の ABBYY FineReader Engine ラッパー (開発者向けインストール後、C:\ProgramData\ABBYY\SDK\12\FineReader Engine\Inc.NET interops フォルダー内)
- Blob コンテナーで動作するようにオーバーライドした IFileWriter インターフェイス (以下のサンプルを参照)
- Azure Storage Explorer (任意。こちらからダウンロード)
- ライセンス処理用に使用する Azure アカウント内の仮想マシン。以降の設定には、次の情報が必要です:
- IP アドレス
- 開放された接続ポート (既定またはユーザー定義) 。開放するにはファイアウォールを使用します
- Sockets ネットワーク プロトコル接続の詳細
準備手順
- ABBYY FineReader Engine ライブラリを含むアーカイブ (たとえば LibraryPackage.zip) を作成します。含めるファイルの一覧は FREngineDistribution.csv ファイルに記載されています。
重要: ストレージ容量が限られている場合 (たとえば、容量が 1GB の App Service Plan を使用している場合) は、/extractオプションを使用して、最小サイズのカスタム ABBYY FineReader Engine パッケージを作成することをお勧めします。残りのストレージ容量はファイル処理に使用されます。
アーカイブを作成する際は、ABBYY FineReader Engine のライセンス設定を仮想マシンの設定に合わせて構成する必要がある点に注意してください。- LicensingSettings.xml ファイルは Network 構成用に設定する必要があります (Working with the LicensingSettings.xml File を参照) 。
- Sockets ネットワーク プロトコルを使用する必要があります。
- オンライン ライセンスのトークン ファイルは Bin64 フォルダー内に配置する必要があります。
- Azure Storage アカウント (この記事では frestorage) を作成します。必要な手順は Azure の Web サイトにあります。
- 必要に応じて App Service を作成します (手順は こちら を参照) 。
- frestorage 内に 2 つの Blob コンテナーを作成します:
- fre-lib - ABBYY FineReader Engine ファイル用
- processing-container - 処理結果用
- 都合のよい方法 (.NET、Powershell、Python スクリプト、または Azure Storage Explorer/Azure Portal アプリケーション) で、LibraryPackage.zip を fre-lib コンテナーにアップロードします。
- Azure アカウントで、ライセンス設定を含む仮想マシンをデプロイして構成します:
- LibraryPackage.zip 内の installLM.exe を使用して License Manager ユーティリティをインストールします。
- LicensingSettings.xml で Sockets ネットワーク プロトコルを設定し、その後 Licensing Service を再起動します。
- Azure App Service から Licensing Service の接続ポートにアクセスできることを確認します (仮想マシン上の Windows Firewall ルールを調整します) 。
- ライセンスをアクティブ化します (ソフトウェア保護のみ。オンライン保護ではアクティベーションは不要です) 。
- frestorage 内に 2 つのキューを作成します:
- processing-queue - ファイル処理タスクの設定用
- status-queue - タスク完了通知用
- frestorage で使用する 2 つの Azure WebJob (.NET Framework) プロジェクトを Visual Studio 2019 で作成します:
App Service での ABBYY FineReader Engine のデプロイと実行
- Visual Studio を使用して FreDeployerJob を Azure App Service に発行します (WebJob の種類を Triggered に設定)。
- Azure ポータルで App Service を開きます。
- App Service の WebJobs を開きます。
- WebJobs の一覧で FreDeployerJob を探します。
- WebJobs タブで右クリックメニューから Run を実行して FreDeployerJob を起動します。
- 処理対象のファイルを processing-コンテナーにアップロードします。
- 処理の新しいタスク用の JSON メッセージを、形式 {“blob-item-name” : “file_name”} で processing-queue に追加します。processing-コンテナーに Demo.tif をアップロードした場合、メッセージは次のようになります:
- タスクの完了を待ちます。新しいタスクが設定されるとすぐに、FreProcessorJob が指定されたファイルをメモリ内で処理し始めます。status-queue には、このタスクの実行に関するエントリが含まれます。
- processing-container 内で出力ファイルを見つけます。
コード サンプル
FreDeployerJob:
Config.cs
Config.cs
Functions.cs
Functions.cs
Program.cs
Program.cs
FreProcessorJob:
Config.cs
Config.cs
Functions.cs
Functions.cs
Program.cs
Program.cs
EngineLoader.cs
EngineLoader.cs
IFileWriter.cs
IFileWriter.cs
Processor.cs
Processor.cs
