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. 左側のメニューで、[Events+ Event Subscription]\(イベント>+ イベント サブスクリプション\) を選択します。

    [Event Grid の作成] ページのスクリーンショット。

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

    サブスクリプションの詳細が表示された [基本的な] タブを示す [Event Grid サブスクリプションの作成] ページのスクリーンショット。

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

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

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

  6. [ MANAGED IDENTITY FOR DELIVERY] で、必要に応じて次の表の情報を使用してマネージド ID の種類を選択します。

    [マネージド ID の種類の選択] オプションを示す[配信のマネージド ID] セクションのスクリーンショット。

    説明
    なし (デフォルト) イベントはマネージド ID を使用して配信されません。
    システム割り当て イベントは、システム割り当てマネージド ID を使用して配信されます。
    重要: このオプションを使用する前に、Event Grid システム トピックでシステム割り当て ID を有効にし、イベント ハブで Azure Event Hubs データ送信者ロールを付与したことを確認してください。 詳細については、「システム トピックのマネージド ID を有効にする」を参照してください

    重要

    ストリーミング通知に使用されるイベント ハブを含む Event Hubs 名前空間でローカル認証を無効にする場合は、マネージド ID を使用して、このイベント サブスクリプションを使用するときにイベントを配信する必要があります。

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

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

    フィルター イベント オプションを示す [フィルター] タブのスクリーンショット。

    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 イベントを除外します。

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

    設定 推奨値 フィールドの説明
    キー data.api フィルター処理に使用されるイベント スキーマ内のフィールド。
    Operator 文字列が入力されていません 選択したキーで評価される演算子。
    Value CreateFile キーの評価に使用される値。
  8. [作成] を選択します

次のステップ