メインコンテンツへスキップ
このセクションでは、FRE 12 for Windows アプリケーションを Azure Cloud Service にデプロイする方法を説明します。例として、Azure Storage アカウント内のコンテナーでファイルを処理する Worker を取り上げます。 このシナリオを実装するには、*.abbyy.com のライセンスサーバーに接続する オンライン ライセンス を使用します。
ABBYY Licensing Service で同時に使用できるオンライン ライセンスは 1 つだけです。
アプリケーションを Cloud Service にデプロイするには、いくつかの手順があります。
  1. 前提条件 に従って、オンライン ライセンス、ローカル マシン、およびクラウド インスタンスを準備する
  2. アプリケーションをデプロイする前に 準備手順 を実行する
  3. アプリケーションを Cloud Service にデプロイする
文書処理で ABBYY FineReader Engine のメソッドを使用する方法を示した コード サンプル を参照してください。

前提条件

オンライン ライセンス

オンライン ライセンスを使用するには、営業担当者から次の情報を受け取る必要があります。
  • Customer Project ID
  • オンライン ライセンス トークン ファイル
  • ライセンス トークン ファイルのパスワード
ABBYY Licensing Service がインストールされている環境でオンライン ライセンスを使用するには、次の条件を満たしている必要があります。
  • 有効なインターネット接続
  • ポート 443 (HTTPS) で *.abbyy.com への接続が許可されていること
  • 認証局の GoDaddy ルート証明書 (この証明書は、信頼されたルート証明機関の証明書ストアのローカル マシン ストアにインストールされている必要があります。証明書の詳細については、GoDaddy のウェブサイトを参照してください。)

ローカル マシン

Cloud Service を作成する前に、以下の仕様に従ってローカル マシンを準備してください。
  • Visual Studio 2019 と、Azure 向けアプリケーション開発用モジュール (Visual Studio の Azure 機能を確認するか、Visual Studio Installer を使用してこれらのモジュールをダウンロードしてください)
  • デバッグを容易にするための Cloud Service エミュレーターおよびストレージ (こちらの情報を参照し、Visual Studio Installer 経由でダウンロードしてください)
  • 単一の Worker role プロジェクトを含む Azure Cloud Service (拡張プレビュー) 用のテンプレート ソリューション (こちらの情報を参照)
  • .NET Framework 4.7.2
  • Azure SDK (こちらからダウンロード)
  • Azure Storage および Blob コンテナーを操作するための NuGet パッケージ - Azure.Storage.Blobs (こちらからダウンロード)
  • .NET Framework 4.7 用 ABBYY FineReader Engine wrapper (開発者向けインストール後、C:\ProgramData\ABBYY\SDK\12\FineReader Engine\Inc.NET interops フォルダー内)
  • Blob コンテナーを操作するためにオーバーライドした IFileWriter インターフェイス (以下のsampleを参照)
  • Azure Storage Explorer (任意 - こちらからダウンロード)

Cloud Service インスタンス

Cloud Service インスタンスは、Azure で WorkerRole プロジェクトを格納するために使用します。このインスタンスは、次の仕様で構成します。
  • Service の .NET Framework バージョン
  • ABBYY FineReader Engine のデプロイに使用する PowerShell
  • Azure SDK のアップロードに使用する NuGet 2.8.5.201 以降
  • PowerShell を使用して Azure Storage アカウントを操作するための Azure SDK

事前準備

事前準備はローカルマシンで行います。これらの手順を完了すると、アプリケーションのデプロイを開始するために必要な設定とファイルをすべて用意できます。
  1. ABBYY FineReader Engine ライブラリと Licensing Service を含む 2 つのアーカイブ (たとえば、LibraryPackage.zip と LSPackage.zip) を作成します。FREngineDistribution.csv ファイルを使用すると、ファイル一覧を自動的に作成できます。ABBYY FineReader Engine と ライセンスサーバー には同じパッケージのものを使用してください。そうしないと、互換性は保証されません。
  2. Azure Storage アカウント (この記事では frestorage) を作成します。必要な手順はすべて Azure の Web サイトに記載されています。
  3. frestorage 内に 3 つの Blob コンテナーを作成します。
  • fre-lib - ABBYY FineReader Engine のファイル用
  • fre-input - 入力ファイル用
  • fre-output - 処理結果用
  1. LibraryPackage.zip と LSPackage.zip を、最も使いやすい方法 (.NET、Powershell、Python スクリプト、または Azure Storage Explorer / Azure Portal アプリケーションの使用) で fre-lib コンテナーにアップロードします。
例として、構成済み環境で作業するために WorkerRole プロジェクトを使用します。必要な構成ファイル (.csdef と Cloud.cscfg) は、プロジェクトの作成後に自動的に生成されます。

Cloud Service への ABBYY FineReader Engine のデプロイ

新しい WorkerRole プロジェクトに ABBYY FineReader Engine をデプロイするには、次の手順を実行します。
  1. 必要に応じて Cloud.cscfg のパラメーターを指定します。
  2. .csdef ファイルのパラメーターを指定します。
  • (任意) WorkerRole の設定
  • (任意) 仮想マシンのサイズ
  • (必須) ロールのローカル ストレージ (LocalStorage セクション。この資料では、LocalStorage1 という名前のストレージを使用) 。ABBYY FineReader Engine パッケージを正しくデプロイできるよう、少なくとも 3 GB に設定します。
  • (必須) ロールの起動順序 (コード サンプル セクションのコード サンプルと設定を使用)
  1. fre-input コンテナー内のファイルを処理し、処理結果を fre-output コンテナーに出力するように WorkerRole プロジェクトを実装します。
  • Cloud Service を動作可能な状態に準備するための OnStart メソッド。このメソッドは、Engine を初期化し、TLS プロトコルを設定するために使用します。
  • fre-input コンテナーから取得したファイルを繰り返し処理するための RunAsync メソッド。このメソッドは、fre-input コンテナー内のファイルを検出し、メモリ内で処理した後、fre-output コンテナーに配置します (Processor.csIFileWriter.csConfig.cs を参照) 。
  • Cloud Service の動作を終了するための OnStop メソッド。このメソッドは、Engine の初期化を解除するために使用します。

コード サンプル

このセクションには、ロールの起動順序と ABBYY FineReader Engine の設定に使用するコード サンプルが含まれています。
  • CleanUpOnStart - 以前のバージョンの ABBYY FineReader Engine を削除し、更新手順を簡略化します (下記の CleanUpOnStart.cmd ファイルおよび CleanUpOnStart.ps1 ファイルの内容を参照) 。
  • PreparePoShModules - PowerShell で Azure Storage を操作するために必要な SDK をダウンロードします (下記の PreparePoShModules.cmd ファイルおよび PreparePoShModules.ps1 ファイルの内容を参照) 。
  • PrepareLibrary - fre-lib コンテナーから ABBYY FineReader Engine ライブラリを取得し、ローカル ストレージに展開します (下記の PrepareLibrary.cmd ファイルおよび PrepareLibrary.ps1 ファイルの内容を参照) 。
  • PrepareLS - fre-lib コンテナーから Licensing Service を取得し、展開して起動します (下記の PrepareLS.cmd ファイルおよび PrepareLS.ps1 ファイルの内容を参照) 。
上記のスクリプトは、アプリケーションを起動する前に、示された順序どおりに正確に実行する必要があります。スクリプトの実行順序をカスタマイズするには、次の属性を指定します。
  • taskType=“simple” - タスクは同期的に、1 回に 1 つずつ実行されます。
  • executionContext=“elevated” - スタートアップ スクリプトを管理者権限で実行します (アプリケーションのインストールと LicensingService.exe の実行に必要です)
その結果、Cloud Service で管理可能なフォルダーが作成されます。このフォルダーは、上記のスクリプトで ABBYY FineReader Engine を配置し、さらに サンプル で使用する FREngine.dll をロードするために使用されます。