データ・カタログ収集イベントの通知の受信

このチュートリアルでは、特定のコンパートメントでデータ・カタログ収集ジョブが開始、成功または失敗するたびに電子メールを送信するようにOracle Cloud Infrastructureイベント・サービスを設定します。主なタスクは次のとおりです:

  • トピックおよびサブスクリプションを作成します。
  • イベントの電子メール通知を受信するルールを記述します。
  • データを含むバケットを作成します。
  • データ・カタログにデータを収集します。

開始する前に

このチュートリアルを正常に実行するには、次のものが必要です:

アカウントに対する管理権限がある場合は、この項の残りの部分をスキップします。それ以外の場合は、管理者に連絡して、次のポリシーをアカウントに追加してください:
allow group <the-group-your-username-belongs> to manage all-resources in compartment catalog-compartment

その他の例については、共通ポリシーを参照してください。

ノート

次の項では、catalog-compartmentというデータ・カタログ・インスタンスのコンパートメントを作成します。

1. 通知の設定

この項では、通知サービスを設定して、カスタム・サブスクリプションに電子メールを登録します。後で、このサブスクリプションを使用して、電子メール・アカウントで通知を受信します。

コンパートメントの作成

データ・カタログ・インスタンス、イベントおよび通知のコンパートメントを作成します。

  1. ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」をクリックします。「アイデンティティ」で、「コンパートメント」をクリックします。
  2. 「コンパートメントの作成」をクリックします。
  3. 次の情報を入力します:
    • 名前: catalog-compartment
    • 説明: Compartment for data catalogs.
    • 親コンパートメント: <your-tenancy>(root)
  4. 「コンパートメントの作成」をクリックします。

データ・カタログ・リソースのコンパートメントを正常に作成しました。

トピックの作成
  1. ナビゲーション・メニューを開き、「開発者サービス」をクリックします。「アプリケーション統合」で、「通知」をクリックします。
  2. 左側のパネルで、「コンパートメント」catalog-compartmentを選択します。
    「コンパートメント」セクションにcatalog-compartmentがリストされていない場合は、左側のナビゲーションをリフレッシュします。
    ノート

    このチュートリアルですべてのリソースに対してこのコンパートメントを選択してください。
  3. 「トピックの作成」をクリックします。
  4. 次の情報を入力します:
    • 名前: catalog-topic
    • 説明: Topic for data catalog harvest events.
  5. 「作成」をクリックします。
通知のトピックを正常に作成しました。
サブスクリプションの作成
  1. 通知サービスのトピックのリストで、catalog-topicをクリックします。
  2. 「サブスクリプションの作成」をクリックします。
  3. 次の情報を入力します:
    • プロトコル: 電子メール
    • 電子メール: <your-email>
  4. 「作成」をクリックします。
  5. 電子メール・アカウントで件名 noreply@notification.<your-region>.oci.oraclecloud.comの電子メールを確認します
  6. 電子メールの「サブスクリプションの確認」リンクをクリックします。
    次のメッセージを含むページがブラウザに表示されます:

    <your-email>catalog-topicトピックにサブスクライブしました。

  7. コンソールで、サブスクリプションのステータスが保留からアクティブに変わるまで待ちます。
トピックの電子メール・サブスクリプションが正常に作成されました。

2. イベント・ルールの設定

この項では、コンパートメントで収集ジョブが開始、成功または失敗するたびに電子メールを送信するルールをイベント・サービスに設定します。

ルールの作成
  1. ナビゲーション・メニューを開き、「可観測性および管理」をクリックします。「イベント・サービス」で、「ルール」をクリックします。
  2. 「ルールの作成」をクリックします。
  3. 次の情報を入力します:
    • 表示名: catalog-harvest-rule
    • 説明: Receive an email when a harvest job starts, succeeds or fails in the catalog-compartment.
    • ルール条件:
      • 条件: イベント・タイプ
      • サービス名: データ・カタログ
      • イベント・タイプ: 収集 - 開始
      • イベント・タイプ: 収集 - 終了
      ノート

      Harvest-BeginHarvest-Endの両方を選択していることを確認してください。
  4. 「+別の条件」をクリックします。
  5. 次の情報を入力します:
    • ルール条件:
      • 条件: 属性
      • 属性名: CompartmentName
      • 属性値: catalog-compartment

    ルール・ロジックが自動的に移入されます:

    MATCH event WHERE (
    eventType EQUALS ANY OF (
    com.oraclecloud.datacatalog.harvestjob.end,
    com.oraclecloud.datacatalog.harvestjob.begin
    )
    AND (
    compartmentName MATCHES ANY OF (
    laleh-catalog-compartment
    )
    )
    )
  6. 「処理」セクションで、次の情報を入力します:
    • 処理タイプ: 通知
    • 通知コンパートメント: catalog-compartment
    • トピック: catalog-topic
  7. 「ルールの作成」をクリックします。
データ・カタログ収集ジョブのイベント・ルールが正常に作成されました。

3. データを含むバケットの作成

この項では、オブジェクト・ストレージ・サービスでバケットを作成します。次に、バケットにデータを追加します。

バケットの作成

オブジェクト・ストレージ・サービスでバケットを作成します。

  1. ナビゲーション・メニューを開き、「ストレージ」をクリックします。「オブジェクト・ストレージおよびアーカイブ・ストレージ」で、「バケット」をクリックします。
  2. 「バケットの作成」をクリックします。
  3. 次の情報を入力します:
    • 名前: catalog-bucket
    • 他のフィールドはデフォルト値のままにします。
  4. 「バケットの作成」をクリックします。
データのバケットが正常に作成されました。
バケットへのデータの追加
  1. オブジェクト・ストレージ・サービスのバケットのリストで、catalog-bucketをクリックします。
  2. 「アップロード」をクリックします。
  3. 「開始する前に」の項で準備した2つのイメージを選択します。
  4. 「アップロード」「閉じる」の順にクリックします。
    2つのイメージがオブジェクトのリストに表示されます。
バケットにデータが正常に追加されました。
バケットへのアクセス権のデータ・カタログへの付与
この項では、catalog-compartmentのオブジェクト・ストレージ・リソースへのアクセス権をデータ・カタログ・サービスに付与します。このポリシーにより、データ・カタログ・インスタンスはcatalog-bucketからメタデータをダウンロードできます。
  1. ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」をクリックします。「アイデンティティ」で、「ポリシー」をクリックします。
  2. ポリシーの作成をクリックします。
  3. 次の情報を入力します:
    • 名前: catalog-policy
    • 説明: Allow Data Catalog to access Object Storage resources.
    • 「ポリシー・ビルダー」セクションで、「カスタマイズ(拡張)」をクリックします。
  4. ポリシー・ビルダーに次のポリシーを貼り付けます:
    allow service datacatalog to read object-family in compartment catalog-compartment
  5. 「作成」をクリックします。
バケットを含むオブジェクト・ストレージ・リソースにアクセスするためのデータ・カタログのポリシーが正常に作成されました。

4. バケットの収集

この項では、データ・カタログ・インスタンスを作成します。次に、データ・カタログ・インスタンスをバケットに接続し、バケットからメタデータを収集します。最後に、収集ジョブの電子メール通知を確認します。

必要な情報の収集

必要な情報を準備し、メモ帳にコピーします。

コンソールから次の情報を収集します:

  • コンパートメントID: <compartment-ocid>
    • コンソールの検索バーで、catalog-compartmentと入力します。
    • 検索結果でcatalog-compartmentをクリックします。
    • OCIDをコピーします。
  • (OCI)リージョン: <region-identifier>
    • 上部のナビゲーション・バーから、<your-region>を見つけます。例: 米国西部(フェニックス)
    • 上部のナビゲーション・バーで、「プロファイル」アイコンに移動し、テナンシ: <your tenancy>をクリックします。
    • 「リージョンの管理」をクリックします。
    • リージョンのリストで、<your-region><region-identifier>を見つけます。例: us-phoenix-1.
  • URL: <object-storage-swift-URI>
    • 次の文字列をコピーします:
      https://swiftobjectstorage.<region-identifier>.oraclecloud.com
    • <region-identifier>を、リージョンについて収集した情報に置き換えます。
  • ネームスペース: <object-storage-namespace>
    • 上部のナビゲーション・バーで、「プロファイル」アイコンに移動し、テナンシ: <your tenancy>をクリックします。
    • 「オブジェクト・ストレージ・ネームスペース」の値をコピーします。
データ・カタログ・インスタンスの作成
  1. ナビゲーション・メニューを開き、「アナリティクスとAI」をクリックします。「データ・レイク」で、「データ・カタログ」をクリックします。
  2. 「データ・カタログの作成」をクリックします。
  3. 次の情報を入力します:
    • コンパートメントに作成: catalog-compartment
    • 名前: catalog-instance-1
    • 他のフィールドはデフォルト値のままにします。
  4. 「データ・カタログの作成」をクリックします。
データ・カタログ・インスタンスが正常に作成されました。
データ・アセットの作成
  1. データ・カタログ・サービスのデータ・カタログ・インスタンスのリストで、catalog-instance-1をクリックします。
  2. 「クイック処理」タイルで、「データ・アセットの作成」を選択します。
  3. 次の情報を入力します:
    • 名前: object-storage-data-asset
  4. 「タイプ」で、「Oracle Object Storage」を選択します
  5. 次のフィールドには、「必要な情報の収集」セクションの情報を使用します:
    • URL: https://swiftobjectstorage.<region-identifier>.oraclecloud.com
    • ネームスペース: <object-storage-namespace>
  6. 「作成」をクリックします。
データ・カタログ・インスタンスにデータ・アセットが正常に作成されました。
バケットに接続
catalog-bucketcatalog-instance-1に接続します。
  1. catalog-instance-1「ホーム」ページで、「最近の更新」タイルに移動し、「object-storage-data-asset」を選択します。
  2. 「接続」で、「接続の追加」をクリックします。
  3. 次の情報を入力します:
    • 名前: catalog-bucket-connection
  4. 「タイプ」で、S2S Principalを選択します。
  5. 次のフィールドには、「必要な情報の収集」セクションの情報を使用します:
    • OCIリージョン: <region-identifier>
    • コンパートメントOCID: <compartment-ocid>
  6. 「これをデータ・アセットのデフォルト接続にします」を選択します。
  7. 「接続のテスト」をクリックします。
  8. 「追加」をクリックします。
バケットがデータ・カタログ・インスタンスに正常に接続されました。
バケットの収集
  1. catalog-instance-1「ホーム」ページで、「最近の更新」タイルに移動し、「object-storage-data-asset」を選択します。
  2. 「収集」をクリックします。
  3. 「接続ステップの選択」で、catalog-bucket-connectionを選択し、「次へ」をクリックします。
  4. 「データ・エンティティの選択」ステップで、次を実行します:
    • バケットのコンテンツの表示: catalog-bucketをクリックします。
    • すべてのイメージのメタデータをカタログに追加: 「すべて追加」をクリックします。
    • 次へ」をクリックします。
  5. 次のフィールドに値を入力または選択します:
    • ジョブ名: harvest-catalog-bucket
    • 認識できないファイルを含める: 選択
    • 他のフィールドはデフォルト値のままにします。
  6. 「ジョブの作成」をクリックします。
  7. harvest-catalog-bucketジョブをクリックします。
  8. 次のサマリーを確認します:
    • ステータス: Succeeded
    • 収集済のデータ・エンティティ: 2
    • 収集された認識できないファイル: 2 (イメージは認識できないファイルです。)
データ・カタログ・インスタンスにバケットの収集ジョブが正常に作成されました。
電子メールの確認
  1. 電子メール・アカウントで次の件名の電子メールを確認してください:

    OCI Event Notification :com.oraclecloud.datacatalog.harvestjob.begin

  2. 電子メールの内容を確認します。

    From: noreply@notification.<region-identifier>.oci.oraclecloud.com

    電子メール本文の例:

    {
      "eventType" : "com.oraclecloud.datacatalog.harvestjob.end",
      "cloudEventsVersion" : "0.1",
      "eventTypeVersion" : "2.0",
      "source" : "DataCatalog",
      "eventTime" : "<time-harvest-job-began>",
      "contentType" : "application/json",
      "data" : {
        "compartmentId" : "ocid1.compartment.oc1..aaaaxxxx",
        "compartmentName" : "catalog-compartment",
        "resourceName" : "",
        "resourceId" : "ocid1.datacatalog.oc1.iad.aaaaxxxx",
        "additionalDetails" : {
          "harvestStatus" : "IN_PROGRESS",
          "dataAssetKey" : "<data-asset-key>",
          "dataAssetName" : "object-storage-data-asset",
          "connectionKey" : "<connection-key",
          "jobKey" : "<job-key>",
          "jobUrl" : "",
          "jobDefinitionKey" : "<job-definition-key>",
          "connectionName" : "catalog-bucket-connection",
          "jobDefinitionName" : "harvest-catalog-bucket",
          "jobExecutionKey" : "<job-execution-key>"
        }
      },
      "eventID" : "<event-ocid>",
      "extensions" : {
        "compartmentId" : "ocid1.compartment.oc1..aaaaxxxx"
      }
    }
    
  3. "harvestStatus"の値を見つけます。
    "harvestStatus" : "IN_PROGRESS"
  4. 電子メール・アカウントで次の件名の電子メールを確認してください:
    OCI Event Notification :com.oraclecloud.datacatalog.harvestjob.end
  5. 電子メールの内容を確認します。

    From: noreply@notification.<region-identifier>.oci.oraclecloud.com

    電子メール本文の例:

    {
      "eventType" : "com.oraclecloud.datacatalog.harvestjob.end",
      "cloudEventsVersion" : "0.1",
      "eventTypeVersion" : "2.0",
      "source" : "DataCatalog",
      "eventTime" : "<time-harvest-job-ended>",
      "contentType" : "application/json",
      "data" : {
        "compartmentId" : "ocid1.compartment.oc1..aaaaxxxx",
        "compartmentName" : "catalog-compartment",
        "resourceName" : "",
        "resourceId" : "ocid1.datacatalog.oc1.iad.aaaaxxxx",
        "additionalDetails" : {
          "harvestStatus" : "SUCCEEDED",
          "dataAssetKey" : "<data-asset-key>",
          "dataAssetName" : "object-storage-data-asset",
          "connectionKey" : "<connection-key",
          "jobKey" : "<job-key>",
          "jobUrl" : "",
          "jobDefinitionKey" : "<job-definition-key>",
          "connectionName" : "catalog-bucket-connection",
          "jobDefinitionName" : "harvest-catalog-bucket",
          "jobExecutionKey" : "<job-execution-key>"
        }
      },
      "eventID" : "<event-ocid>",
      "extensions" : {
        "compartmentId" : "ocid1.compartment.oc1..aaaaxxxx"
      }
    }
    
  6. "harvestStatus"の値を見つけます。
    "harvestStatus" : "SUCCEEDED"
    ステータスは「完了」です:
    ノート

    harvestjob.beginイベントの"harvestStatus""IN_PROGRESS"で、harvestjob.endイベントの場合は"SUCCEEDED"または"FAILED"です。