この記事では、コストが高く柔軟性の低いフォーム処理方法を、コスト効率に優れた柔軟な自動 PDF 処理に置き換えるために使用できる Azure アーキテクチャについて説明します。
Architecture
このアーキテクチャの PowerPoint ファイルをダウンロードします。
ワークフロー
- 指定された Outlook メール アカウントが、PDF ファイルを添付ファイルとして受け取ります。 電子メールが到着すると、電子メールを処理するロジック アプリがトリガーされます。 このロジック アプリは、Azure Logic Apps の機能を使用して構築されています。
- ロジック アプリは、PDF ファイルを Azure Data Lake Storage のコンテナーにアップロードします。
- 手動またはプログラムで PDF ファイルを同じ PDF コンテナーにアップロードすることもできます。
- PDF コンテナーに PDF ファイルが到着すると、PDF ファイル内の PDF フォームを処理する別のロジック アプリがトリガーされます。
- このロジック アプリは、処理のために PDF ファイルの場所を関数アプリに送信します。 この関数アプリは、Azure Functions の機能を使用して構築されています。
- 関数アプリはファイルの場所を受け取り、次のアクションを実行します。
- ファイルに複数のページがある場合は、1 つのページに分割します。 各ページには、独立したフォームが 1 つ含まれています。 分割されたファイルは、Data Lake Storageの 2 番目のコンテナーに保存されます。
- HTTPS POST (Azure REST API) を使用して、処理のために単一ページの PDF ファイルの場所を AI Document Intelligence に送信します。 Azure AI Document Intelligence が処理を完了すると、関数アプリに応答が返され、情報がデータ構造に配置されます。
- 応答データを含む JSON データ ファイルを作成し、そのファイルを Data Lake Storage の 3 番目のコンテナーに格納します。
- フォーム処理用のロジック アプリは、処理された応答データを受け取ります。
- フォーム処理用のロジック アプリは、処理されたデータを Azure Cosmos DB に送信します。これにより、データがデータベースとコレクションに保存されます。
- Power BI は Azure Cosmos DB からデータを取得し、分析情報とダッシュボードを提供します。
- 必要に応じて、Azure Cosmos DB 内のデータに対してさらに処理を実装できます。
コンポーネント
- Azure AI サービス は、Azure AI サービス、特定タスク向け AI、そしてビジネス ロジックを使用して、一般的な業務プロセス向けにすぐに使える AI サービスを提供する Azure AI 製品のカテゴリです。 これらの製品のうちの 1 つが Azure AI Document Intelligence であり、機械学習モデルを使用してドキュメントからキーと値のペア、テキスト、テーブルを抽出します。
- Azure Logic Apps は、アプリ、データ、サービス、システムを統合する自動ワークフローを作成および実行するためのサーバーレス クラウド サービスです。
- Azure Functions は、記述するコードと管理するインフラストラクチャを減らし、コストを節約できるサーバーレス ソリューションです。
- Azure Data Lake Storage は Azure 上にエンタープライズ データ レイクを構築するための基盤です。
- Azure Cosmos DB は、最新のアプリ開発に対応するフル マネージドの NoSQL とリレーショナル データベースです。
- Power BI はソフトウェア サービス、アプリ、コネクタのコレクションであり、これらが連携して、関連のないデータ ソースを一貫性があり視覚的に没入型で対話形式の分析情報に変換できるようにします。
代替
- Azure Cosmos DB の代わりに Azure SQL Database を使用して、処理されたフォーム データを格納できます。
- Azure Data Explorer を使用して、Data Lake Storage に格納されている処理されたフォーム データを視覚化できます。
シナリオの詳細
フォーム処理は、多くの場合、重要なビジネス機能です。 多くの企業は、コストと時間がかかり、エラーが発生しやすい手動プロセスに引き続き依存しています。 手動プロセスを置き換えると、コストとリスクが削減され、企業の機敏性が向上します。
この記事では、手動の PDF フォーム処理またはコストのかかるレガシ システムを置き換えるために使用でき、PDF フォーム処理を自動化するアーキテクチャについて説明します。 Azure AI Document Intelligence は PDF フォームを処理し、Logic Apps はワークフローを提供し、Functions はデータ処理機能を提供します。
デプロイの情報については、この記事の「このシナリオのデプロイ」を参照してください。
考えられるユース ケース
この記事で説明するソリューションでは、次のようなさまざまな種類のフォームを処理できます。
- Invoices
- 支払いレコード
- 安全レコード
- インシデント レコード
- コンプライアンス レコード
- 注文書
- 支払い認可フォーム
- 健康スクリーニング フォーム
- アンケート フォーム
考慮事項
これらの考慮事項は、ワークロードの品質向上に使用できる一連の基本原則である Azure Well-Architected Framework の要素を組み込んでいます。 詳細については、「Microsoft Azure Well-Architected Framework」を参照してください。
[信頼性]
信頼性により、顧客に確約したことをアプリケーションで確実に満たせるようにします。 詳細については、「信頼性の重要な要素の概要」を参照してください。
信頼性の高いワークロードは、回復性と可用性の両方を備えたものです。 回復性とは、障害から回復して動作を続行する、システムの能力です。 回復性の目的は、障害の発生後にアプリケーションを十分に機能する状態に戻すことです。 "可用性" は、ユーザーが必要なときにワークロードにアクセスできるかどうかの尺度です。
このアーキテクチャは、ビジネス ソリューションを提供するためにデプロイおよびプロトタイプを迅速に作成できるスターター アーキテクチャとして使用されることを目的としています。 プロトタイプが成功した場合は、必要に応じてアーキテクチャを拡張および強化し、追加の要件を満たすことができます。
このアーキテクチャでは、スケーラブルで回復性がある Azure インフラストラクチャとテクノロジを利用します。 たとえば、Azure Cosmos DB には、ニーズを満たすように構成できる冗長性とグローバル カバレッジが組み込まれています。
このソリューションで使用される Azure サービスの可用性の保証については、「Online Services のサービス レベル アグリーメント (SLA)」を参照してください。
セキュリティ
セキュリティは、重要なデータやシステムの意図的な攻撃や悪用に対する保証を提供します。 詳細については、「セキュリティの重要な要素の概要」を参照してください。
このアーキテクチャで使用される Outlook メール アカウントは、PDF フォームを添付ファイルとして受け取る専用のメール アカウントです。 送信者を信頼できる関係者のみに制限し、悪意のあるアクターがメール アカウントをスパムするのを防ぐことをお勧めします。
「このシナリオのデプロイ」で説明されているこのアーキテクチャの実装では、セキュリティを強化するために次の手段を取っています。
- PowerShell と Bicep のデプロイ スクリプトでは、Azure Key Vault を使用して機密情報を格納し、ターミナル画面に表示されたり、デプロイ ログに格納されたりしないようにします。
- マネージド ID は、アプリケーションが Microsoft Entra 認証をサポートするリソースに接続するときに使われる、Microsoft Entra ID で自動的に管理される ID を提供します。 関数アプリではマネージド ID が使用されるため、コードは個々のプリンシパルに依存せず、機密性の高い ID 情報は含まれません。
コスト最適化
コストの最適化とは、不要な費用を削減し、操作効率を向上させる方法を検討することです。 詳しくは、コスト最適化の柱の概要に関する記事をご覧ください。
コストを最適化するためのガイドラインを次に示します。
- 最初から大規模なリソースに投資するのではなく、アーキテクチャの従量課金制戦略を使用し、必要に応じてスケールアウトします。
- 「このシナリオのデプロイ」で説明されているアーキテクチャの実装では、概念実証に適した開始ソリューションがデプロイされます。 デプロイ スクリプトによって、最小限のリソース要件で動作するアーキテクチャが作成されます。 たとえば、デプロイ スクリプトでは、関数アプリを実行するための最小のサーバーレス Linux ホストが作成されます。
パフォーマンス効率
パフォーマンス効率とは、ユーザーからの要求に合わせて効率的な方法でワークロードをスケーリングできることです。 詳細については、「パフォーマンス効率の柱の概要」を参照してください。
このアーキテクチャでは、パフォーマンス効率を向上させるために使用できるスケーリング機能が組み込まれたサービスを使用します。 次に例をいくつか示します。
- Azure Logic Apps と Azure Functions の両方をサーバーレス インフラストラクチャでホストできます。 詳細については、「Azure サーバーレスの概要: Azure Logic Apps と Azure Functions でクラウドベースのアプリやソリューションを作成する」を参照してください。
- スループットを自動的にスケーリングするように Azure Cosmos DB を構成できます。 詳細については、「Azure Cosmos DB - API for NoSQL のデータベースまたはコンテナーで、自動スケーリングのスループットをプロビジョニングする」を参照してください。
このシナリオのデプロイ
このアーキテクチャの基本的なバージョンである "ソリューション アクセラレータ" をデプロイし、独自のソリューションをデプロイするための開始点として使用できます。 アクセラレータの参照実装には、コード、デプロイ スクリプト、デプロイ ガイドが含まれています。
アクセラレータは PDF フォームを受け取り、データ フィールドを抽出し、Azure Cosmos DB にデータを格納します。 Power BI によってデータが視覚化されます。 この設計では、モジュール式でメタデータ駆動型の手法を使用します。 フォーム フィールドはハードコーディングされません。 任意の PDF フォームを処理できます。
アクセラレータは、コードを変更せずにそのまま使用して、安全フォーム、請求書、インシデント レコードなどの 1 ページの PDF フォームを処理して視覚化できます。 これを使用するには、サンプル PDF フォームを収集し、新しいモデルをトレーニングしてフォームのレイアウトを学習させ、モデルをソリューションに接続するだけで済みます。 また、データセット向けに Power BI レポートを再設計して、必要な分析情報が提供されるようにする必要もあります。
この実装では、Azure AI Document Intelligence Studio を使用してカスタム モデルを作成します。 アクセラレータは、機械学習モデルに保存されているフィールド名を、他のフォームを処理するための参照として使用します。 カスタムビルドの機械学習モデルを作成するために必要なサンプル フォームは 5 つだけです。 100 個ものカスタムビルド モデルをマージして、さまざまなフォームを処理できる複合機械学習モデルを作成できます。
デプロイのリポジトリ
ソリューション アクセラレータの GitHub リポジトリは、このソリューションのデプロイ ガイドを含む「Azure PDF フォーム処理オートメーション ソリューション アクセラレータ」にあります。
デプロイの前提条件
デプロイするには、Azure サブスクリプションが必要です。 無料サブスクリプションの詳細については、「Azure の無料アカウントを使ってクラウドで構築」を参照してください。
アクセラレータで使用されるサービスの詳細については、次に示す概要とリファレンスの記事を参照してください。
- AI Document Intelligence のドキュメント
- Azure Logic Apps のドキュメント
- Azure Functions のドキュメント
- Azure Data Lake Storage Gen2 の概要
- Azure Cosmos DB のドキュメント
- Power BI のドキュメント
デプロイに関する考慮事項
新しい種類の PDF フォームを処理するには、サンプル PDF ファイルを使用して新しい機械学習モデルを作成します。 モデルの準備ができたら、モデル ID をソリューションに接続します。
このコンテナー名は、GitHub リポジトリから取得するデプロイ スクリプトで構成できます。
このアーキテクチャは、高可用性 (HA) またはディザスター リカバリー (DR) の要件には対応していません。 運用環境のデプロイ用に現在のアーキテクチャを拡張および強化する場合は、次の推奨事項とベスト プラクティスを検討してください。
- 要件に基づいて HA/DR アーキテクチャを設計し、必要に応じて組み込みの冗長性機能を使用します。
- Bicep デプロイ コードを更新して、処理ボリュームを処理できるコンピューティング環境を作成します。
- Bicep デプロイ コードを更新して、HA/DR の要件を満たすためにアーキテクチャ コンポーネントのインスタンスをさらに作成します。
- ストレージを設計してプロビジョニングする場合は、「Azure Storage の冗長性」のガイドラインに従ってください。
- ロジック アプリを設計してプロビジョニングする場合は、「事業継続とディザスター リカバリー」のガイドラインに従ってください。
- 関数アプリを設計してプロビジョニングする場合は、「Azure Functions の信頼性」のガイドラインに従ってください。
- Azure Cosmos DB を使用して作成されたデータベースを設計してプロビジョニングする場合は、「Azure Cosmos DB を使用して高可用性を実現する」のガイドラインに従ってください。
- このシステムを運用環境に配置して大量の PDF フォームを処理することを検討している場合は、デプロイ スクリプトを変更して、より多くのリソースを持つ Linux ホストを作成できます。 これを行うには、deploy-functionsapp.bicep 内 のコードを変更します
共同作成者
この記事は、Microsoft によって保守されています。 当初の寄稿者は以下のとおりです。
プリンシパル作成者:
- Gail Zhou | シニア アーキテクト
その他の共同作成者:
- Nalini Chandhi | プリンシパル テクニカル スペシャリスト
- Steve DeMarco | シニア クラウド ソリューション アーキテクト
- Travis Hilbert | テクニカル スペシャリスト グローバル ブラック ベルト
- DB Lee | シニア テクニカル スペシャリスト
- Malory Rose | テクニカル スペシャリスト グローバル ブラック ベルト
- Oscar Shimabukuro | シニア クラウド ソリューション アーキテクト
- Echo Wang | プリンシパル プログラム マネージャー
公開されていない LinkedIn プロフィールを見るには、LinkedIn にサインインしてください。
次のステップ
- ビデオ: Azure PDF フォーム処理自動化.
- Azure PDF フォーム処理自動化ソリューション アクセラレータ
- Azure 請求書処理自動化ソリューション アクセラレータ
- ビジネス プロセス自動化アクセラレータ
- チュートリアル: Azure Logic Apps、Azure Functions、Azure Storage を使ってメールを処理するワークフローを作成する