Knowledge Catalog(旧称: Dataplex Universal Catalog)のメタデータ変更フィードを使用すると、Pub/Sub に通知をパブリッシュすることで、メタデータ エントリとアスペクトの変更をほぼリアルタイムで追跡できます。これらのフィードを構成またはモニタリングする際に、フィード作成権限、VPC Service Controls の境界、通知配信、メッセージ ペイロードに関する一般的な問題を診断して解決できます。詳細については、メタデータ変更フィードについてをご覧ください。
このドキュメントで説明されていない問題の解決にサポートが必要な場合は、Cloud カスタマーケアをご覧ください。
メタデータ変更フィードの作成エラー
このセクションでは、メタデータ変更フィードの作成時に発生する可能性のあるエラーの解決方法について説明します。
権限拒否エラー
メタデータ変更フィードを作成しようとすると、PERMISSION_DENIED エラーが発生します。
この問題は、ユーザーまたは Knowledge Catalog サービス アカウントに必要な権限がないために発生します。
この問題を解決するには、次の要件を確認してください。
dataplex.metadataFeeds.create権限があることを確認します。フィードのスコープ(組織、プロジェクト、エントリ グループ)に対する
dataplex.entryGroups.export権限があることを確認します。Knowledge Catalog サービス アカウント(
service-{PROJECT_NUMBER}@gcp-sa-dataplex.iam.gserviceaccount.com)に、宛先の Pub/Sub トピックに対するroles/pubsub.publisherロールが付与されていることを確認します。
VPC Service Controls のエラー
フィードの作成時に PERMISSION_DENIED または VPC Service Controls のエラーが発生する。
この問題を解決するには、メタデータ変更フィードと、それがモニタリングするリソースが同じ VPC Service Controls 境界に属していることを確認します。
フィードが組織スコープの場合、同じ境界内のプロジェクトのみがモニタリングされます。
フィードがプロジェクト スコープまたはエントリ グループ スコープの場合は、指定されたすべてのプロジェクトまたはエントリ グループが、フィードを作成するプロジェクトと同じ境界内にあることを確認します。
通知の配信に関する問題
このセクションでは、通知の配信に関する問題を解決する方法について説明します。
通知が届かない
Pub/Sub トピックで通知を受信していません。これには、次のようないくつかの要因が考えられます。
権限がない: Knowledge Catalog サービス アカウントに、トピックの
roles/pubsub.publisherロールがありません。有効化の遅延: 新しく作成または更新されたフィードが有効になるまでに最大 10 分かかることがあります。
トピックが削除された: 宛先の Pub/Sub トピックが削除されると、Knowledge Catalog はパブリッシュを停止します。
スコープまたはフィルタの不一致: 変更が、構成されたスコープまたはフィルタと一致しない可能性があります。
この問題を解決するには、以下の点を確認してください。
Knowledge Catalog サービス アカウントに、トピックに対する
roles/pubsub.publisherロールがあることを確認します。フィードを作成または更新してから 10 分以上待ちます。
Pub/Sub トピックが存在するかどうかを確認します。削除されている場合は、再作成する必要があります。
フィード構成を確認して、スコープとフィルタが、受信するメタデータの変更と一致していることを確認します。
通知が重複して届く
通知メッセージが重複して届く。Knowledge Catalog は「少なくとも 1 回」の配信を保証します。つまり、特に再試行中にメッセージが重複する可能性があります。
重複の可能性を処理するようにサブスクライバー アプリケーションを構成します。messageId または変更タイムスタンプを使用して、メッセージを識別して重複除去できます。
コンテンツの問題
このセクションでは、メタデータ変更フィード通知の内容に関する問題を解決する方法について説明します。
ペイロードに完全なメタデータがありません
通知メッセージには、リソース名と変更タイプのみが含まれ、完全なメタデータや特定の変更は含まれません。
これは、メタデータ変更フィード通知が、設計上、完全なペイロードではなく「変更シグネチャ」(変更内容)を提供するからです。これにより、メッセージが軽量に保たれ、ペイロード サイズの上限を回避できます。
通知で提供されたリソース名を使用して Dataplex API(GetEntry など)を呼び出し、リソースの現在の状態を取得します。