Event Grid インジェスト用のリソースを手動で作成する
Azure Data Explorer では、Event Grid インジェスト パイプラインを使用して Azure Storage (Azure Blob Storage と Azure Data Lake Storage Gen2) からの継続的インジェストを提供します。 Event Grid インジェスト パイプラインでは、Azure Event Grid サービスにより、BLOB の作成または BLOB の名前変更のイベントは Azure Event Hubs 経由でストレージ アカウントから Azure Data Explorer にルーティングされます。
この記事では、Event Grid インジェストに必要なリソース (Event Grid サブスクリプション、Event Hubs 名前空間、イベント ハブ) を手動で作成する方法について説明します。 Event Hubs 名前空間とイベント ハブの作成については、 Prerequisitesで説明されています。 Event Grid インジェストの定義中にこれらのリソースの自動作成を使用するには、「Azure Data Explorer でイベント グリッド データ接続を作成する」をご覧ください。
前提条件
- Azure サブスクリプション。 無料の Azure アカウントを作成します。
- Azure Data Explorer クラスターとデータベース。 クラスターとデータベースを作成します。
- ストレージ アカウント。 Event Grid 通知サブスクリプションは、
BlobStorage
、StorageV2
、または Data Lake Storage Gen2 に対して Azure Storage アカウントで設定できる。 - Event Hubs 名前空間とイベント ハブ。
Note
最適なパフォーマンスを得るには、Azure Data Explorer クラスターと同じリージョンにすべてのリソースを作成します。
Event Grid のサブスクリプションを作成する
Azure portal で、ストレージ アカウントに移動します。
左側のメニューで、 Events>+ イベント サブスクリプションを選択します。
[基本] タブの [イベント サブスクリプションの作成] ウィンドウで、次の値を指定します。
設定 推奨値 フィールドの説明 Name test-grid-connection 作成する Event Grid サブスクリプションの名前。 イベント スキーマ イベント グリッド スキーマ イベント グリッドで使用するスキーマ。 トピックの種類 ストレージ アカウント Event Grid トピックの種類。 自動的に設定されます。 ソース リソース gridteststorage1 ご利用のストレージ アカウントの名前。 自動的に設定されます。 [システム トピック名] gridteststorage1... Azure Storage によってイベントが発行されるシステム トピック。 次に、このシステム トピックにより、イベントを受信して処理するサブスクライバーにイベントが転送されます。 自動的に設定されます。 イベントの種類のフィルター 作成された BLOB 通知を取得する特定のイベント。 サブスクリプションを作成するときに、サポートされている種類 (Microsoft.Storage.BlobCreated または Microsoft.Storage.BlobRenamed) のいずれかを選択します。 BLOB の名前変更は、ADLSv2 ストレージに対してのみサポートされています。 [
ENDPOINT の詳細 で、Event Hubs を選択します。エンドポイントの選択を選択し、作成したイベント ハブ (例: test-hubを入力します。
MANAGED IDENTITY FOR DELIVERYで、必要に応じて次の表の情報を使用してマネージド ID の種類を選択します。
型 説明 なし (デフォルト) イベントはマネージド ID を使用して配信されません。 システム割り当て イベントは、システム割り当てマネージド ID を使用して配信されます。
重要: このオプションを使用する前に、Event Grid システム トピックでシステム割り当て ID を有効にし、イベント ハブで Azure Event Hubs Data Sender ロールを付与していることを確認してください。 詳細については、「システム トピックのマネージド ID を有効にする」を参照してください。重要
ストリーミング通知に使用するイベント ハブを含む Event Hubs 名前空間でローカル認証をする場合は、マネージド ID を使用して、このイベント サブスクリプションを使用するときにイベントを配信する必要があります。
イベントをフィルター処理する場合は、[フィルター] タブを選択します。
[サブジェクト フィルター] を使用して、特定のサブジェクト イベントを追跡します。 次のように、通知用のフィルターを設定します。
- [サブジェクト フィルタリングを有効にする] を選択します。
- [次で始まるサブジェクト] フィールドは、サブジェクトの "リテラル" プレフィックスです。 適用されるパターンは startswith であるため、複数のコンテナー、フォルダー、BLOB を対象にできます。 ワイルドカードは使用できません。
- BLOB コンテナーに対してフィルターを定義するには、フィールドを
/blobServices/default/containers/[container prefix]
のように設定します。 - BLOB プレフィックス (または Azure Data Lake Gen2 のフォルダー) に対してフィルターを定義するには、フィールドを次のように設定します。
/blobServices/default/containers/[container name]/blobs/[folder/blob prefix]
- BLOB コンテナーに対してフィルターを定義するには、フィールドを
- [Subject Ends With]\(指定の値で終わる件名\) フィールドは、BLOB の "リテラル" サフィックスです。 ワイルドカードは使用できません。
- [Case-sensitive subject matching]\(大文字小文字を区別した件名の一致\) フィールドは、プレフィックスとサフィックスのフィルターで大文字と小文字が区別されるかどうかを示します。
イベントのフィルター処理の詳細については、Blob Storage のイベントに関するページをご覧ください。
[高度なフィルター] を使用して、要件を満たすカスタム フィルターを追加します。
たとえば、Azure Data Lake SDK を使用してファイルをアップロードする場合、ファイルの作成により、サイズが 0 の Event Grid イベントがトリガーされます。 このイベントは、Azure Data Explorer によって破棄されます。 Close パラメーターが true に設定されている場合、ファイルのフラッシュによって別のイベントがトリガーされます。 このイベントは、これが最終更新であり、ファイル ストリームがクローズされたことを示します。 不要な処理と空のファイル インジェスト エラーを回避するには、次のフィルターを使用して CreateFile イベントを除外します。
設定 推奨値 フィールドの説明 キー data.api フィルター処理に使用されるイベント スキーマ内のフィールド。 演算子 文字列が入力されていません 選択したキーで評価される演算子。 値 CreateFile キーの評価に使用される値。 [作成] を選択します