Azure Blob Storage
目的
event grid 機能と service bus キューを介して Glasswall Halo API を使用し、Azure Blob Storage で自動ファイルサニタイズを設定します。
Azure Blob Storage 統合ガイド
- 前提条件
- ステップ 1 - service bus 名前空間を作成する
- ステップ 2 - service bus キューを作成する
- ステップ 3 - ソース blob storage アカウントのイベントを設定する
- ステップ 4 - function app を作成する
- ステップ 5 - function を作成する
前提条件
- Azure Portal アカウント
- ソース Azure Blob Storage アカウント
- 宛先 Azure Blob Storage アカウント
- Glasswall のサンプルコード
注:
- すべての構成パラメーターが正しい名前で Azure Function App に追加されていることを確認してください。名前の不一致があると失敗の原因になります。
- このユースケースを示すためのサンプルコードのみを提供しています。これはフラットファイルのみを処理し、高度なロギング機構は備えていません。
ステップ 1 - Service Bus 名前空間を作成する
まず、event grid メッセージを受信できるように、Service Bus 名前空間とキューを作成する必要があります。
注: tier と設定は負荷または it に関連しています。
-
Azure Portal にサインインします。
-
All services > Integration > Service Bus に移動します。
-
In the Basics tab of the Create namespace page, create a Namespace.
Note: 提供されているサンプルコードはすべての階層で動作するため、用途に適した設定を選択し、必須の構成をすべて入力してください。

Service Bus namespace と queue の作成に関する詳細については、Azure documentation を参照してください。
ステップ 2 - Service Bus queue を作成する
namespace を作成したら、イベントの投稿先となる queue を作成する必要があります。
-
Service Bus namespace ページで、左側のナビゲーションメニューから Queues を選択します。
-
Queues ページで、ツールバーの + queue を選択します。

注: namespace と同様に、設定は好みによります。このサンプルでは、単にデフォルト値を使用します。
- queue の名前を入力し、その他の値はデフォルトのままにします。
選択する名前は重要ではありません。サンプルコードでは、設定された任意の値に構成できるためです。

- Create を選択します。
Service Bus namespace と queue の作成に関する詳細については、Azure documentation を参照してください。
ステップ 3 - ソース Blob Storage アカウントのイベントを設定する
Service Bus の namespace と queue を作成したら、ソース Blob Storage アカウントを構成して、イベントを queue へのメッセージとして送信するようにします。
これらのイベントは Azure Function を直接トリガーするように構成することもできますが、各イベントは 30 秒以内に確認応答される必要があります。ほとんどのファイルはすばやく処理される一方で、より大きなファイルや高負荷時にはこの時間枠を超える可能性があります。
この制限を回避するため、Event Grid がイベントを Service Bus queue に配信し、Azure Function がその queue からメッセージを消費するように構成することを推奨します。このアプローチでは、イベントの取り込みと処理を分離することで、より高い回復性と柔軟性を実現できます。
- イベントを設定するには、ソース storage account に移動し、Events > More options > Service Bus queue を選択します。

-
イベント サブスクリプションの詳細で Name を入力します。
-
トピックの詳細で System topic name を入力します。
-
Filter to event type ドロップダウンから、Blob created を選択します。
これは、その storage account 全体の Blob Storage 内で新しいファイルごとにメッセージが作成されることを意味します。
- 最後に、endpoint detail で前の手順で作成した queue を選択します。


これで、その storage account にアップロードされた各ファイルごとに新しい Service Bus メッセージが queue に配置され、次に作成する function を介して消費されます。
ステップ 4 - Function App を作成する
関数の実行をホストするための Function App が必要です。先ほど作成した Service Bus メッセージを消費する Azure function は、event grid の詳細を使用して新しいファイルを識別できます。
Glasswall には、以下を実行する C# の動作する例があります。
- 新しいファイルを識別します。
- ファイルにアクセスします。
- それを Glasswall Halo の Synchronous API へのリクエストで送信します。
- 宛先ストレージ アカウント内に、同じ名前のコンテナーを作成します(まだ存在しない場合)。
- 再生成されたファイル(元のファイルと同じ名前)を書き込むか、再生成できなかった場合はテキスト ファイルを書き込みます。
-
Function App を作成するには、Create a resource ページに移動します。
-
New ページで、Compute > Function app を選択します。
-
以下の設定は Glasswall のサンプル関数で動作します。想定している関数コードとホスティング オプションに合わせて、これらの設定を調整してください。

Function App の作成に関するより詳細な情報については、Azure documentation を参照してください。
ステップ 5 - 関数を作成する
Function App が作成されたら、関数を作成できます。
- Function App の概要には、コードをデプロイするためのさまざまな方法に関するガイダンスが表示されます。
選択したコードベースに最も適した方法を選択してください。


- Glasswall のサンプル コードを使用している場合は、以下の構成を Settings > Configuration から Function App に追加する必要があります。
すべての値は、Azure Portal 内の関連リソースから取得できます。Glasswall Halo へのアクセスには、ご利用のインスタンスと認証を使用するか、または試用目的の場合は、当社の公開エンドポイントで使用する基本認証資格情報について営業チームまでお問い合わせください。
設定
| キー | 値 |
|---|---|
| Azure_servicebus_connectionstring | service bus の接続文字列 |
| Azure_servicebus_newfiles_queuename | 新しい blob イベント用のキュー名 |
| Azure_storage_account_name | ソース ストレージ アカウント名 |
| Azure_storage_account_key | ソース ストレージ アカウント キー |
| Azure_storage_destination_connectionstring | 宛先ストレージ アカウントの接続文字列 |
| cdr_username | Halo API の basic auth 用ユーザー名 |
| cdr_password | Halo API の basic auth 用パスワード |
| cdr_url | CDR-file エンドポイントのURL(例: https://api.glasswall.com/api/v3/cdr-file) |

おめでとうございます。すべての手順が完了すると、ソース Azure Blob Storage アカウントに配置されたあらゆるファイルは Glasswall の高度な CDR 技術によって処理され、再生成されたクリーンなドキュメント、またはエラーメッセージを含む無害なテキストファイルのいずれかが生成されます。