Benachrichtigungen mit Feeds zu Metadatenänderungen erhalten

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

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

Hinweise

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

  1. Enable the Dataplex Universal Catalog and Pub/Sub APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  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 Dataplex Universal 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 das Dataplex Universal Catalog-Dienstkonto

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

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 Dataplex Universal Catalog möglicherweise auch diese Berechtigung mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erteilen.

Berechtigungen für das Dienstkonto des Dataplex Universal Catalog gewähren

Der Dataplex Universal Catalog-Dienst-Agent wird erstellt, wenn Sie die Dataplex API aktivieren. Sie können den Dienst-Agent anhand seiner E-Mail-Adresse 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 Dataplex Universal Catalog-Dienstkonto 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 Dataplex Universal 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 Dataplex Universal 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 Dataplex Universal 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
}

Feeds für Metadatenänderungen ansehen

Sie können die Details eines Metadata-Änderungsfeeds 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

Feeds für Metadatenänderungen 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 Feed für Metadatenänderungen 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 dadurch 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 Dataplex Universal Catalog Nachrichten im angegebenen Pub/Sub-Thema, wenn Metadaten geändert werden. 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