In diesem Dokument wird beschrieben, wie Sie Feeds für Metadatenänderungen in Dataplex Universal Catalog konfigurieren, um Benachrichtigungen über Pub/Sub zu erhalten, wenn Metadaten in Dataplex Universal Catalog erstellt, aktualisiert oder gelöscht werden.
Weitere Informationen zu Feeds für Metadatenänderungen finden Sie unter Übersicht über Feeds für Metadatenänderungen.
Hinweis
Machen Sie sich mit Pub/Sub und der Dataplex Universal Catalog API vertraut.
-
Aktivieren Sie die Dataplex Universal Catalog und 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 Berechtigungserviceusage.services.enableenthält. Informationen zum Zuweisen von Rollen. Erstellen Sie ein Pub/Sub-Thema, um Benachrichtigungen zu erhalten. Weitere Informationen finden Sie unter Thema erstellen.
Installieren Sie
gcloud. Achten Sie darauf, dass der Kurzalias vongcloudfestgelegt ist.Legen Sie einen Alias für
gcurlfest. Dadurch wird eine Verknüpfung erstellt, die Ihr Authentifizierungstoken enthält und den JSON-Content-Type für API-Anfragen festlegt:alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'Legen Sie die Variable
DATAPLEX_APIfest: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 istLOCATION: der Standort, an dem der Job ausgeführt wird, z. B.us-central1,europe-west3oderasia-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 von Feeds für Metadatenänderungen benötigen:
-
Metadaten exportieren:
Dataplex Entry Group Exporter (
roles/dataplex.entryGroupExporter) -
Auf Nachrichten von Feeds für Metadatenänderungen zugreifen:
Pub/Sub-Abonnent (
roles/pubsub.subscriber)
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 von Feeds für Metadatenänderungen erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen , um die notwendigen Berechtigungen anzuzeigen, die erforderlich sind:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind erforderlich, um Metadaten zu exportieren und auf Nachrichten von Feeds für Metadatenänderungen zuzugreifen:
-
Metadaten exportieren:
-
dataplex.metadataFeeds.createfür das Projekt -
dataplex.entryGroups.exportfür die Ressource, die den Umfang des Feeds definiert (Organisation, Projekt oder Eintragsgruppe) -
resourcemanager.projects.getfür das Projekt -
resourcemanager.projects.listfür das Projekt
-
-
Auf Nachrichten von Feeds für Metadatenänderungen zugreifen:
-
pubsub.subscriptions.consumefür das Abo -
pubsub.topics.attachSubscriptionfür das Thema
-
Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.
Rollen und Berechtigungen des Dataplex Universal Catalog-Dienstkontos
Damit das Dataplex Universal Catalog-Dienstkonto die erforderliche
Berechtigung zum Veröffentlichen von Nachrichten von Feeds für Metadatenänderungen hat,
bitten Sie Ihren Administrator, dem
Pub/Sub-Publisher (roles/pubsub.publisher)
IAM-Rolle für das Dataplex Universal Catalog-Dienstkonto für das Pub/Sub-Thema zuzuweisen.
Diese vordefinierte Rolle enthält die
pubsub.topics.publish
Berechtigung,
die zum
Veröffentlichen von Nachrichten von Feeds für Metadatenänderungen erforderlich ist.
Ihr Administrator kann dem Dataplex Universal Catalog-Dienstkonto möglicherweise auch diese Berechtigung mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erteilen.
Berechtigungen für das Dataplex Universal Catalog-Dienstkonto 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
PROJECT_NUMBER ist 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.
Gewähren Sie dem Dienstkonto die
Rolle „Pub/Sub-Publisher“
(roles/pubsub.publisher) für das Pub/Sub-Thema, um diese Berechtigung zu erteilen:
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 von Feeds für Metadatenänderungen veröffentlicht werden.PROJECT_NUMBER: die Projektnummer Ihres Dataplex Universal Catalog-Projekts, in dem sich das Dienstkonto befindet.
Console
Rufen Sie in der Google Cloud Console die Seite Pub/Sub-Themen auf.
Wählen Sie das Thema aus, das Sie für Benachrichtigungen zu Metadatenfeeds verwenden, und klicken Sie bei Bedarf auf Infofeld ansehen.
Klicken Sie auf dem Tab Berechtigungen auf Hauptkonto hinzufügen.
Geben Sie im Feld Neue Hauptkonten das Dataplex Universal Catalog Dienstkonto ein:
service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com.Wählen Sie im Feld Rollen zuweisen die Option Pub/Sub-Publisher aus.
Klicken Sie auf Speichern.
Feed für Metadatenänderungen erstellen
Wenn Sie steuern möchten, welche Änderungen Benachrichtigungen auslösen, 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 Eintragsgruppen. Mit dem Bereich können Sie definieren, welche Ressourcen überwacht werden sollen. Mit Filtern können Sie weiter festlegen, wann Dataplex Universal Catalog Benachrichtigungen sendet.
Weitere Informationen finden Sie unter Feed für Metadatenänderungen.
REST
Verwenden Sie die
projects.locations.metadataFeeds.create
Methode, um einen Feed für Metadatenänderungen zu erstellen.
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-projectTOPIC_ID: die Pub/Sub-Themen-ID, in der die Nachrichten von Feeds für Metadatenänderungen veröffentlicht werden, z. B.example-topicFEED_ID: die ID des Feeds für Metadatenänderungen, den Sie erstellen möchten, z. B.example-feed
Projektbereich
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-projectTOPIC_ID: die Pub/Sub-Themen-ID, in der die Nachrichten von Feeds für Metadatenänderungen veröffentlicht werden, z. B.example-topicFEED_ID: die ID des Feeds für Metadatenänderungen, den Sie erstellen möchten, z. B.example-feed
Eintragsgruppenbereich
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-projectLOCATION: der Standort, an dem Sie den Feed erstellen möchten, z. B.us-central1ENTRY_GROUP_ID: die ID der Eintragsgruppe, die überwacht werden soll, z. B.example-entry-groupTOPIC_ID: die Pub/Sub-Themen-ID, in der die Nachrichten von Feeds für Metadatenänderungen veröffentlicht werden, z. B.example-topicFEED_ID: die ID des Feeds für Metadatenänderungen, den Sie erstellen möchten, z. B.example-feed
Mit Filtern
Führen Sie den folgenden Befehl aus, um einen Feed für Metadatenänderungen mit Filtern zu erstellen (nach Eintragstyp filtern):
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-projectTOPIC_ID: die Pub/Sub-Themen-ID, in der die Nachrichten von Feeds für Metadatenänderungen veröffentlicht werden, z. B.example-topicFEED_ID: die ID des Feeds für Metadatenänderungen, 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 Feeds für Metadatenänderungen ansehen.
REST
Verwenden Sie die
projects.locations.metadataFeeds.get
Methode, um einen Feed für Metadatenänderungen anzusehen.
Führen Sie den folgenden Befehl aus:
gcurl "https://${DATAPLEX_API}/metadataFeeds/FEED_ID"
Ersetzen Sie Folgendes:
FEED_ID: die ID des Feeds für Metadatenänderungen, den Sie ansehen 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 die
projects.locations.metadataFeeds.list
Methode, um Feeds für Metadatenänderungen aufzulisten.
Führen Sie den folgenden Befehl aus:
gcurl "https://${DATAPLEX_API}/metadataFeeds"
Feed für Metadatenänderungen aktualisieren
Sie können den Bereich oder die Filter eines vorhandenen Feeds für Metadatenänderungen aktualisieren.
REST
Verwenden Sie die
projects.locations.metadataFeeds.patch
Methode, um einen Feed für Metadatenänderungen zu aktualisieren.
Führen Sie den folgenden Befehl aus, um den Feed für Metadatenänderungen 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 Feeds für Metadatenänderungen, den Sie aktualisieren möchten, z. B.example-feed
Feed für Metadatenänderungen 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 wird 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 Ihre Abonnentenanwendungen alle ausstehenden Nachrichten im Pub/Sub-Abo verarbeitet haben.
REST
Verwenden Sie die
projects.locations.metadataFeeds.delete
Methode, um einen Feed für Metadatenänderungen zu löschen.
Führen Sie den folgenden Befehl aus:
gcurl -X DELETE \
"https://${DATAPLEX_API}/metadataFeeds/FEED_ID"
Ersetzen Sie Folgendes:
FEED_ID: die ID des Feeds für Metadatenänderungen, 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:
Ein -Abo erstellen:
gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic=TOPIC_IDErsetzen Sie Folgendes:
SUBSCRIPTION_ID: die Abo-ID, die Sie erstellen möchtenTOPIC_ID: die Pub/Sub-Themen-ID, in der die Nachrichten von Feeds für Metadatenänderungen veröffentlicht werden.
Nachrichten aus dem Abo abrufen:
gcloud pubsub subscriptions pull SUBSCRIPTION_ID --auto-ack --limit=10Ersetzen 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 Daten-Payload.
Nächste Schritte
- Übersicht über Feeds für Metadatenänderungen
- Informationen zu Dataplex Universal Catalog-IAM und -Zugriffssteuerung
- Fehlerbehebung bei Feeds für Metadatenänderungen.