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 名前空間とイベント ハブの作成については、「 前提条件」を参照してください。 Event Grid インジェストの定義中にこれらのリソースの自動作成を使用するには、「Azure Data Explorer でイベント グリッド データ接続を作成する」をご覧ください。

前提条件

Note

最適なパフォーマンスを得るには、Azure Data Explorer クラスターと同じリージョンにすべてのリソースを作成します。

Event Grid のサブスクリプションを作成する

  1. Azure portal で、ストレージ アカウントに移動します。

  2. 左側のメニューで、 [イベント]>[イベント サブスクリプション] を選択します。

    Event Grid サブスクリプションの作成のスクリーンショット。

  3. [基本] タブの [イベント サブスクリプションの作成] ウィンドウで、次の値を指定します。

    入力するイベント サブスクリプションの値を作成する。

    設定 推奨値 フィールドの説明
    名前 test-grid-connection 作成する Event Grid サブスクリプションの名前。
    イベント スキーマ イベント グリッド スキーマ イベント グリッドで使用するスキーマ。
    トピックの種類 ストレージ アカウント Event Grid トピックの種類。 自動的に設定されます。
    ソース リソース gridteststorage1 ご利用のストレージ アカウントの名前。 自動的に設定されます。
    [システム トピック名] gridteststorage1... Azure Storage によってイベントが発行されるシステム トピック。 次に、このシステム トピックにより、イベントを受信して処理するサブスクライバーにイベントが転送されます。 自動的に設定されます。
    イベントの種類のフィルター 作成された BLOB 通知を取得する特定のイベント。 サブスクリプションを作成する場合、サポートされている種類のいずれかを選択します。Microsoft.Storage.BlobCreated または Microsoft.Storage.BlobRenamed。 BLOB の名前変更は、ADLSv2 ストレージに対してのみサポートされています。
  4. [エンドポイントの詳細] で、 [イベント ハブ] を選択します。

    イベントを受信するイベント ハンドラーを選択します - イベント ハブ - Azure Data Explorer。

  5. [エンドポイントの選択] をクリックし、作成したイベント ハブを入力します (test-hub など)。

  6. イベントをフィルター処理する場合は、[フィルター] タブを選択します。

    [サブジェクト フィルター を使用して、特定のサブジェクト イベントを追跡します。 次のように、通知用のフィルターを設定します。

    [フィルター] タブの [Event Grid]

    1. [サブジェクト フィルタリングを有効にする] を選択します。
    2. [次で始まるサブジェクト] フィールドは、サブジェクトの "リテラル" プレフィックスです。 適用されるパターンは startswith であるため、複数のコンテナー、フォルダー、BLOB を対象にできます。 ワイルドカードは使用できません。
      • BLOB コンテナーに対してフィルターを定義するには、フィールドを /blobServices/default/containers/[container prefix] のように設定します。
      • BLOB プレフィックス (または Azure Data Lake Gen2 のフォルダー) に対してフィルターを定義するには、フィールドを次のように設定します。 /blobServices/default/containers/[container name]/blobs/[folder/blob prefix]
    3. [Subject Ends With](指定の値で終わる件名) フィールドは、BLOB の "リテラル" サフィックスです。 ワイルドカードは使用できません。
    4. [Case-sensitive subject matching](大文字小文字を区別した件名の一致) フィールドは、プレフィックスとサフィックスのフィルターで大文字と小文字が区別されるかどうかを示します。

    イベントのフィルター処理の詳細については、Blob Storage のイベントに関するページをご覧ください。

    [高度なフィルター] を使用して、要件を満たすカスタム フィルターを追加します。

    たとえば、Azure Data Lake SDK を使用してファイルをアップロードする場合、ファイルの作成により、サイズが 0 の Event Grid イベントがトリガーされます。 このイベントは Azure Data Explorerによって破棄されます。 Close パラメーターが true に設定されている場合、ファイルのフラッシュによって別のイベントがトリガーされます。 このイベントは、これが最終更新であり、ファイル ストリームがクローズされたことを示します。 不要な処理と空のファイル インジェスト エラーを回避するには、次のフィルターを使用して CreateFile イベントを除外します。

    ファイルの作成イベントをフィルター処理する方法を示すスクリーンショット。

    設定 推奨値 フィールドの説明
    Key data.api フィルター処理に使用されるイベント スキーマ内のフィールド。
    演算子 String が にありません 選択したキーで評価される演算子。
    CreateFile キーの評価に使用される値。
  7. [作成]

次のステップ