Benachrichtigungen mit Feeds zu Metadatenänderungen erhalten

In diesem Dokument wird beschrieben, wie Sie Feeds für Metadatenänderungen in Knowledge Catalog (früher Dataplex Universal Catalog) konfigurieren, um Benachrichtigungen über Pub/Sub zu erhalten, wenn Metadaten in Knowledge Catalog erstellt, aktualisiert oder gelöscht werden.

Weitere Informationen zu Metadaten-Änderungsfeeds finden Sie unter Übersicht über Metadaten-Änderungsfeeds.

Hinweis

Machen Sie sich mit Pub/Sub und der Dataplex API vertraut.

  1. Aktivieren Sie die Dataplex API und die Pub/Sub APIs.

    Rollen, die zum Aktivieren von APIs erforderlich sind

    Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin), die die Berechtigung serviceusage.services.enable enthält. Weitere Informationen zum Zuweisen von Rollen

    APIs aktivieren

  2. Erstellen Sie ein Pub/Sub-Thema, um Benachrichtigungen zu empfangen. Weitere Informationen finden Sie unter Thema erstellen.

  3. Installieren Sie gcloud. Prüfen Sie, ob der Kurzalias von gcloud festgelegt ist.

  4. Legen Sie einen Alias von gcurl fest. Dadurch wird eine Verknüpfung erstellt, die Ihr Authentifizierungstoken enthält und den JSON-Inhaltstyp für API-Anfragen festlegt:

    alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'
    
  5. Legen Sie die Variable DATAPLEX_API fest.

    DATAPLEX_API="dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION"
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID: Ihre Projekt-ID, in der die Dataplex API aktiviert ist
    • LOCATION: der Ort, an dem der Job ausgeführt wird, z. B. us-central1, europe-west3 oder asia-south1

Erforderliche Rollen und Berechtigungen

Damit Sie Feeds für Metadatenänderungen konfigurieren können, müssen Sie und das Knowledge Catalog-Dienstkonto die erforderlichen IAM-Rollen und -Berechtigungen haben.

Nutzerrollen und Berechtigungen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt oder die Organisation zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Exportieren von Metadaten und zum Zugriff auf Nachrichten zu Metadatenänderungsfeeds benötigen:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierten Rollen enthalten die Berechtigungen, die zum Exportieren von Metadaten und zum Zugriff auf Nachrichten zu Metadatenänderungen erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen, um die notwendigen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um Metadaten zu exportieren und auf Nachrichten in Metadaten-Änderungsfeeds zuzugreifen:

  • Metadaten exportieren:
    • dataplex.metadataFeeds.create für das Projekt
    • dataplex.entryGroups.export für die Ressource, die den Bereich des Feeds definiert (Organisation, Projekt oder Eintragsgruppe)
    • resourcemanager.projects.get für das Projekt
    • resourcemanager.projects.list für das Projekt
  • Auf Nachrichten zu Metadatenänderungen zugreifen:
    • pubsub.subscriptions.consume für das Abo
    • pubsub.topics.attachSubscription zum Thema

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Rollen und Berechtigungen für Knowledge Catalog-Dienstkonten

Bitten Sie Ihren Administrator, dem Dienstkonto des Knowledge Catalog die IAM-Rolle Pub/Sub-Publisher (roles/pubsub.publisher) für das Pub/Sub-Thema zuzuweisen, damit das Dienstkonto des Knowledge Catalog die erforderliche Berechtigung zum Veröffentlichen von Nachrichten zu Metadatenänderungsfeeds hat.

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierte Rolle enthält die Berechtigung pubsub.topics.publish, die zum Veröffentlichen von Nachrichten zu Feeds für Metadatenänderungen erforderlich ist.

Ihr Administrator kann dem Dienstkonto des Knowledge Catalog möglicherweise auch diese Berechtigung mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erteilen.

Berechtigungen für das Dienstkonto des Knowledge Catalog gewähren

Der Dienst-Agent in Knowledge Catalog wird erstellt, wenn Sie die Dataplex API aktivieren. Sie können den Dienst-Agent anhand seiner E-Mail-ID identifizieren:

service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com

Dabei ist PROJECT_NUMBER die Projektnummer des Projekts, in dem Sie die Dataplex API aktiviert haben.

Das Dienstkonto des Knowledge Catalog-Dienstes muss Nachrichten in Ihrem Pub/Sub-Thema veröffentlichen können. Weisen Sie dem Dienstkonto die Rolle „Pub/Sub-Publisher“ (roles/pubsub.publisher) für das Pub/Sub-Thema zu, um diese Berechtigung zu gewähren:

gcloud

Führen Sie den Befehl gcloud pubsub topics add-iam-policy-binding aus:

gcloud pubsub topics add-iam-policy-binding TOPIC_ID \
    --member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com" \
    --role="roles/pubsub.publisher"

Ersetzen Sie Folgendes:

  • TOPIC_ID: die ID Ihres Pub/Sub-Themas, in dem die Nachrichten zum Metadatenänderungsfeed veröffentlicht werden.
  • PROJECT_NUMBER: die Projektnummer Ihres Knowledge Catalog-Projekts, in dem sich das Dienstkonto befindet.

Console

  1. Rufen Sie in der Google Cloud Console die Pub/Sub-Seite Themen auf.

    Themen aufrufen

  2. Wählen Sie das Thema aus, das Sie für Benachrichtigungen zum Metadatenfeed verwenden, und klicken Sie bei Bedarf auf Infofeld ansehen.

  3. Klicken Sie auf dem Tab Berechtigungen auf Hauptkonto hinzufügen.

  4. Geben Sie im Feld Neue Hauptkonten das Knowledge Catalog-Dienstkonto ein: service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com.

  5. Wählen Sie im Feld Rollen zuweisen die Option Pub/Sub-Publisher aus.

  6. Klicken Sie auf Speichern.

Metadaten-Änderungsfeed erstellen

Wenn Sie festlegen möchten, bei welchen Änderungen Benachrichtigungen generiert werden, können Sie einen Feed für Metadatenänderungen konfigurieren, um bestimmte Ressourcen zu überwachen. Dazu geben Sie einen Bereich an, z. B. Ihre gesamte Organisation, bestimmte Projekte oder bestimmte Eintragungsgruppen. Mit dem Bereich können Sie definieren, welche Ressourcen überwacht werden sollen. Mit Filtern können Sie weiter eingrenzen, wann Knowledge Catalog Benachrichtigungen sendet.

Weitere Informationen finden Sie unter Metadaten-Änderungsfeed.

REST

Verwenden Sie zum Erstellen eines Metadaten-Änderungsfeeds die Methode projects.locations.metadataFeeds.create.

Organisationsbereich

Führen Sie den folgenden Befehl aus, um einen Feed für Metadatenänderungen zu erstellen, der die gesamte Organisation überwacht:

gcurl -X POST -d "$(cat <<EOF
{
  "scope": {
    "organizationLevel": true
  },
  "pubsubTopic": "projects/PROJECT_ID_PUBSUB/topics/TOPIC_ID"
}
EOF
)" "https://${DATAPLEX_API}/metadataFeeds?metadataFeedId=FEED_ID"

Ersetzen Sie Folgendes:

  • PROJECT_ID_PUBSUB: die Projekt-ID, in der sich das Pub/Sub-Thema befindet, z. B. example-project
  • TOPIC_ID: Die Pub/Sub-Themen-ID, in der die Nachrichten des Metadaten-Änderungsfeeds veröffentlicht werden, z. B. example-topic
  • FEED_ID: die ID des Metadaten-Änderungsfeeds, den Sie erstellen möchten, z. B. example-feed

Projektumfang

Führen Sie den folgenden Befehl aus, um einen Feed für Metadatenänderungen zu erstellen, der bestimmte Projekte überwacht:

gcurl -X POST -d "$(cat <<EOF
{
  "scope": {
    "projects": [
      "projects/PROJECT_ID_1",
      "projects/PROJECT_ID_2"
    ]
  },
  "pubsubTopic": "projects/PROJECT_ID_PUBSUB/topics/TOPIC_ID"
}
EOF
)" "https://${DATAPLEX_API}/metadataFeeds?metadataFeedId=FEED_ID"

Ersetzen Sie Folgendes:

  • PROJECT_ID_PUBSUB: die Projekt-ID, in der sich das Pub/Sub-Thema befindet, z. B. example-project
  • TOPIC_ID: Die Pub/Sub-Themen-ID, in der die Nachrichten des Metadaten-Änderungsfeeds veröffentlicht werden, z. B. example-topic
  • FEED_ID: die ID des Metadaten-Änderungsfeeds, den Sie erstellen möchten, z. B. example-feed

Umfang der Eintragsgruppe

Führen Sie den folgenden Befehl aus, um einen Feed für Metadatenänderungen zu erstellen, der bestimmte Eintragsgruppen überwacht:

gcurl -X POST -d "$(cat <<EOF
{
  "scope": {
    "entryGroups": [
      "projects/PROJECT_ID/locations/LOCATION/entryGroups/ENTRY_GROUP_ID_1",
      "projects/PROJECT_ID/locations/LOCATION/entryGroups/ENTRY_GROUP_ID_2"
    ]
  },
  "pubsubTopic": "projects/PROJECT_ID_PUBSUB/topics/TOPIC_ID"
}
EOF
)" "https://${DATAPLEX_API}/metadataFeeds?metadataFeedId=FEED_ID"

Ersetzen Sie Folgendes:

  • PROJECT_ID_PUBSUB: die Projekt-ID, in der sich das Pub/Sub-Thema befindet, z. B. example-project
  • LOCATION: der Speicherort, an dem Sie den Feed erstellen möchten, z. B. us-central1
  • ENTRY_GROUP_ID: die ID der zu überwachenden Eintragsgruppe, z. B. example-entry-group
  • TOPIC_ID: Die Pub/Sub-Themen-ID, in der die Nachrichten des Metadaten-Änderungsfeeds veröffentlicht werden, z. B. example-topic
  • FEED_ID: die ID des Metadaten-Änderungsfeeds, den Sie erstellen möchten, z. B. example-feed

Mit Filtern

Führen Sie den folgenden Befehl aus, um einen Metadaten-Änderungsfeed mit Filtern zu erstellen (Filtern nach Eintragstyp):

gcurl -X POST -d "$(cat <<EOF
{
  "scope": {
    "projects": [
      "projects/PROJECT_ID_1",
      "projects/PROJECT_ID_2"
    ]
  },
  "filter": {
    "entryTypes": [
      "projects/PROJECT_ID/locations/global/entryTypes/bigquery-table"
    ]
  },
  "pubsubTopic": "projects/PROJECT_ID_PUBSUB/topics/TOPIC_ID"
}
EOF
)" "https://${DATAPLEX_API}/metadataFeeds?metadataFeedId=FEED_ID"

Ersetzen Sie Folgendes:

  • PROJECT_ID_PUBSUB: die Projekt-ID, in der sich das Pub/Sub-Thema befindet, z. B. example-project
  • TOPIC_ID: Die Pub/Sub-Themen-ID, in der die Nachrichten des Metadaten-Änderungsfeeds veröffentlicht werden, z. B. example-topic
  • FEED_ID: die ID des Metadaten-Änderungsfeeds, den Sie erstellen möchten, z. B. example-feed

Response:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.dataplex.v1.OperationMetadata",
    "createTime": "2023-10-02T15:01:23Z",
    "target": "projects/PROJECT_ID/locations/LOCATION/metadataFeeds/FEED_ID",
    "verb": "create",
    "apiVersion": "v1"
  },
  "done": false
}

Metadaten-Änderungsfeeds ansehen

Sie können die Details eines Feed für Metadatenänderungen aufrufen.

REST

Verwenden Sie die Methode projects.locations.metadataFeeds.get, um einen Feed mit Metadatenänderungen aufzurufen.

Führen Sie dazu diesen Befehl aus:

gcurl "https://${DATAPLEX_API}/metadataFeeds/FEED_ID"

Ersetzen Sie Folgendes:

  • FEED_ID: Die ID des Metadaten-Änderungsfeeds, den Sie aufrufen möchten, z. B. example-feed

Metadatenänderungsfeeds auflisten

Sie können die Feeds für Metadatenänderungen in einem Projekt und an einem Standort auflisten.

REST

Verwenden Sie zum Auflisten von Feeds für Metadatenänderungen die Methode projects.locations.metadataFeeds.list.

Führen Sie dazu diesen Befehl aus:

gcurl "https://${DATAPLEX_API}/metadataFeeds"

Metadaten-Änderungsfeed aktualisieren

Sie können den Bereich oder die Filter eines vorhandenen Feeds für Metadatenänderungen aktualisieren.

REST

Verwenden Sie zum Aktualisieren eines Metadaten-Änderungsfeeds die Methode projects.locations.metadataFeeds.patch.

Führen Sie den folgenden Befehl aus, um den Metadaten-Änderungsfeed zu aktualisieren und die Filter für den Eintragstyp zu entfernen:

gcurl -X PATCH -d "$(cat <<EOF
{
  "filter": {
    "entryTypes": []
  }
}
EOF
)" "https://${DATAPLEX_API}/metadataFeeds/FEED_ID?updateMask=filter"

Ersetzen Sie Folgendes:

  • FEED_ID: die ID des Metadaten-Änderungsfeeds, den Sie aktualisieren möchten, z. B. example-feed

Metadaten-Änderungsfeed löschen

Sie können einen Metadaten-Änderungsfeed löschen, wenn Sie keine Benachrichtigungen mehr erhalten möchten.

Wenn Sie einen Feed für Metadatenänderungen löschen, werden keine neuen Metadatenänderungen mehr in Ihrem Pub/Sub-Thema veröffentlicht. Das Thema oder das mit dem Feed verknüpfte Abo werden jedoch nicht gelöscht. Sie müssen sie manuell löschen, wenn sie nicht mehr benötigt werden.

Bevor Sie den Feed oder das Abo löschen, müssen Sie dafür sorgen, dass alle ausstehenden Nachrichten im Pub/Sub-Abo von Ihren Abonnentenanwendungen verarbeitet wurden.

REST

Wenn Sie einen Metadaten-Änderungsfeed löschen möchten, verwenden Sie die Methode projects.locations.metadataFeeds.delete.

Führen Sie dazu diesen Befehl aus:

gcurl -X DELETE \
"https://${DATAPLEX_API}/metadataFeeds/FEED_ID"

Ersetzen Sie Folgendes:

  • FEED_ID: Die ID des Metadaten-Änderungsfeeds, den Sie löschen möchten, z. B. example-feed

Benachrichtigungen verarbeiten

Nachdem Sie einen Feed für Metadatenänderungen konfiguriert haben, veröffentlicht Knowledge Catalog Nachrichten im angegebenen Pub/Sub-Thema, wenn Metadatenänderungen auftreten. Wenn Sie diese Nachrichten verarbeiten möchten, erstellen Sie ein Pub/Sub-Abo für das Thema.

Sie können beispielsweise ein Pull-Abo erstellen und die Google Cloud CLI verwenden, um Nachrichten anzusehen:

  1. So erstellen Sie ein Abo:

    gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic=TOPIC_ID
    

    Ersetzen Sie Folgendes:

    • SUBSCRIPTION_ID: die Abo-ID, die Sie erstellen möchten
    • TOPIC_ID: die Pub/Sub-Themen-ID, in der die Nachrichten des Metadaten-Änderungsfeeds veröffentlicht werden.
  2. Nachrichten aus dem Abo abrufen:

    gcloud pubsub subscriptions pull SUBSCRIPTION_ID --auto-ack --limit=10
    

    Ersetzen Sie Folgendes:

    • SUBSCRIPTION_ID: die Abo-ID, aus der Sie Nachrichten abrufen möchten

Weitere Informationen zum Verarbeiten von Pub/Sub-Nachrichten finden Sie unter Nachrichten aus einem Pull-Abo empfangen. Informationen zum Nachrichtenformat finden Sie unter Datennutzlast.

Nächste Schritte