Questo documento descrive come configurare i feed di modifiche dei metadati di Dataplex Universal Catalog per ricevere notifiche tramite Pub/Sub quando i metadati all'interno di Dataplex Universal Catalog vengono creati, aggiornati o eliminati.
Per saperne di più sui feed di modifiche dei metadati, consulta la panoramica dei feed di modifiche dei metadati.
Prima di iniziare
Acquisisci familiarità con Pub/Sub e l'API Dataplex Universal Catalog.
-
Abilita le API Dataplex Universal Catalog e Pub/Sub.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo servizi (
roles/serviceusage.serviceUsageAdmin), che contiene l'autorizzazioneserviceusage.services.enable. Scopri come concedere i ruoli. Crea un argomento Pub/Sub per ricevere le notifiche. Per saperne di più, consulta Creare un argomento.
Installa
gcloud. Assicurati che sia impostato l'alias breve digcloud.Imposta un alias di
gcurl. Viene creata una scorciatoia che include il token di autenticazione e imposta il tipo di contenuti JSON per le richieste API:alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'Imposta la variabile
DATAPLEX_API:DATAPLEX_API="dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION"Sostituisci quanto segue:
PROJECT_ID: l'ID progetto in cui è abilitata l'API DataplexLOCATION: la località in cui viene eseguito il job, ad esempious-central1,europe-west3oasia-south1
Ruoli e autorizzazioni richiesti
Per configurare i feed di modifiche dei metadati, assicurati che tu e il service account Dataplex Universal Catalog disponiate dei ruoli e delle autorizzazioni IAM richiesti.
Ruoli utente e autorizzazioni
Per ottenere le autorizzazioni necessarie per esportare i metadati e accedere ai messaggi dei feed di modifiche dei metadati, chiedi all'amministratore di concederti i seguenti ruoli IAM sul progetto o sull'organizzazione:
-
Esporta metadati:
Dataplex Entry Group Exporter (
roles/dataplex.entryGroupExporter) -
Accedi ai messaggi dei feed di modifiche dei metadati:
Sottoscrittore Pub/Sub (
roles/pubsub.subscriber)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per esportare i metadati e accedere ai messaggi dei feed di modifiche dei metadati. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per esportare i metadati e accedere ai messaggi dei feed di modifiche dei metadati sono necessarie le seguenti autorizzazioni:
-
Esporta metadati:
-
dataplex.metadataFeeds.createsul progetto -
dataplex.entryGroups.exportsulla risorsa che definisce l'ambito del feed (organizzazione, progetto o gruppo di voci) -
resourcemanager.projects.getsul progetto -
resourcemanager.projects.listsul progetto
-
-
Accedi ai messaggi dei feed di modifiche dei metadati:
-
pubsub.subscriptions.consumesulla sottoscrizione -
pubsub.topics.attachSubscriptionsull'argomento
-
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Ruoli e autorizzazioni del account di servizio Dataplex Universal Catalog
Per assicurarti che il account di servizio Dataplex Universal Catalog disponga dell'autorizzazione necessaria per pubblicare i messaggi dei feed di modifiche dei metadati, chiedi all'amministratore di concedere il ruolo IAM Pub/Sub Publisher (roles/pubsub.publisher) al account di servizio Dataplex Universal Catalog sull'argomento Pub/Sub.
Questo ruolo predefinito contiene l'
pubsub.topics.publish
autorizzazione,
necessaria per
pubblicare i messaggi dei feed di modifiche dei metadati.
L'amministratore potrebbe anche essere in grado di concedere al account di servizio Dataplex Universal Catalog questa autorizzazione tramite ruoli personalizzati o altri ruoli predefiniti.
Concedi le autorizzazioni al account di servizio Dataplex Universal Catalog
L'agente di servizio Dataplex Universal Catalog viene creato quando abiliti l'API Dataplex. Puoi identificare l'agente di servizio in base alla sua email:
service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com
Qui, PROJECT_NUMBER è il numero del progetto in cui hai abilitato l'API Dataplex.
Il account di servizio Dataplex Universal Catalog deve essere in grado di pubblicare messaggi nell'argomento Pub/Sub.
Per concedere questa autorizzazione, assegna al account di servizio il
ruolo Pub/Sub Publisher
(roles/pubsub.publisher) sull'argomento Pub/Sub:
gcloud
Esegui il gcloud pubsub topics add-iam-policy-binding comando:
gcloud pubsub topics add-iam-policy-binding TOPIC_ID \
--member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com" \
--role="roles/pubsub.publisher"
Sostituisci quanto segue:
TOPIC_ID: l'ID dell'argomento Pub/Sub in cui vengono pubblicati i messaggi dei feed di modifiche dei metadati.PROJECT_NUMBER: il numero del progetto Dataplex Universal Catalog in cui si trova il account di servizio.
Console
Nella Google Cloud console, vai alla pagina Argomenti di Pub/Sub.
Seleziona l'argomento che utilizzi per le notifiche dei feed di metadati e, se necessario, fai clic su Mostra riquadro informazioni.
Nella scheda Autorizzazioni, fai clic su Aggiungi entità.
Nel campo Nuove entità, inserisci il account di servizio Dataplex Universal Catalog :
service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com.Nel campo Assegna ruoli, seleziona Pub/Sub Publisher.
Fai clic su Salva.
Crea un feed di modifiche dei metadati
Per controllare quali modifiche generano notifiche, puoi configurare un feed di modifiche dei metadati per monitorare risorse specifiche. Per farlo, specifica un ambito, ad esempio l'intera organizzazione, progetti specifici o gruppi di voci specifici. Mentre l'ambito ti consente di definire quali risorse monitorare, puoi utilizzare i filtri per perfezionare ulteriormente quando Dataplex Universal Catalog invia le notifiche.
Per saperne di più, consulta Feed di modifiche dei metadati.
REST
Per creare un feed di modifiche dei metadati, utilizza il
projects.locations.metadataFeeds.create
metodo.
Ambito dell'organizzazione
Esegui il comando riportato di seguito per creare un feed di modifiche dei metadati che monitora l'intera organizzazione:
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"
Sostituisci quanto segue:
PROJECT_ID_PUBSUB: l'ID progetto in cui si trova l'argomento Pub/Sub, ad esempioexample-projectTOPIC_ID: l'ID dell'argomento Pub/Sub in cui vengono pubblicati i messaggi dei feed di modifiche dei metadati, ad esempioexample-topicFEED_ID: l'ID del feed di modifiche dei metadati che vuoi creare, ad esempioexample-feed
Ambito del progetto
Esegui il comando riportato di seguito per creare un feed di modifiche dei metadati che monitora progetti specifici:
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"
Sostituisci quanto segue:
PROJECT_ID_PUBSUB: l'ID progetto in cui si trova l'argomento Pub/Sub, ad esempioexample-projectTOPIC_ID: l'ID dell'argomento Pub/Sub in cui vengono pubblicati i messaggi dei feed di modifiche dei metadati, ad esempioexample-topicFEED_ID: l'ID del feed di modifiche dei metadati che vuoi creare, ad esempioexample-feed
Ambito del gruppo di voci
Esegui il comando riportato di seguito per creare un feed di modifiche dei metadati che monitora gruppi di voci specifici:
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"
Sostituisci quanto segue:
PROJECT_ID_PUBSUB: l'ID progetto in cui si trova l'argomento Pub/Sub, ad esempioexample-projectLOCATION: la località in cui vuoi creare il feed, ad esempious-central1ENTRY_GROUP_ID: l'ID del gruppo di voci da monitorare, ad esempioexample-entry-groupTOPIC_ID: l'ID dell'argomento Pub/Sub in cui vengono pubblicati i messaggi dei feed di modifiche dei metadati, ad esempioexample-topicFEED_ID: l'ID del feed di modifiche dei metadati che vuoi creare, ad esempioexample-feed
Con i filtri
Esegui il comando riportato di seguito per creare un feed di modifiche dei metadati con filtri (filtraggio per tipo di voce):
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"
Sostituisci quanto segue:
PROJECT_ID_PUBSUB: l'ID progetto in cui si trova l'argomento Pub/Sub, ad esempioexample-projectTOPIC_ID: l'ID dell'argomento Pub/Sub in cui vengono pubblicati i messaggi dei feed di modifiche dei metadati, ad esempioexample-topicFEED_ID: l'ID del feed di modifiche dei metadati che vuoi creare, ad esempioexample-feed
Risposta:
{
"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
}
Visualizza i feed di modifiche dei metadati
Puoi visualizzare i dettagli di un feed di modifiche dei metadati.
REST
Per visualizzare un feed di modifiche dei metadati, utilizza il
projects.locations.metadataFeeds.get
metodo.
Esegui questo comando:
gcurl "https://${DATAPLEX_API}/metadataFeeds/FEED_ID"
Sostituisci quanto segue:
FEED_ID: l'ID del feed di modifiche dei metadati che vuoi visualizzare, ad esempioexample-feed
Elenca i feed di modifiche dei metadati
Puoi elencare i feed di modifiche dei metadati in un progetto e in una località.
REST
Per elencare i feed di modifiche dei metadati, utilizza il
projects.locations.metadataFeeds.list
metodo.
Esegui questo comando:
gcurl "https://${DATAPLEX_API}/metadataFeeds"
Aggiorna un feed di modifiche dei metadati
Puoi aggiornare l'ambito o i filtri di un feed di modifiche dei metadati esistente.
REST
Per aggiornare un feed di modifiche dei metadati, utilizza il
projects.locations.metadataFeeds.patch
metodo.
Esegui il comando riportato di seguito per aggiornare il feed di modifiche dei metadati in modo da rimuovere i filtri del tipo di voce:
gcurl -X PATCH -d "$(cat <<EOF
{
"filter": {
"entryTypes": []
}
}
EOF
)" "https://${DATAPLEX_API}/metadataFeeds/FEED_ID?updateMask=filter"
Sostituisci quanto segue:
FEED_ID: l'ID del feed di modifiche dei metadati che vuoi aggiornare, ad esempioexample-feed
Elimina un feed di modifiche dei metadati
Puoi eliminare un feed di modifiche dei metadati se non hai più bisogno di ricevere notifiche.
L'eliminazione di un feed di modifiche dei metadati impedisce al feed di pubblicare nuove modifiche dei metadati nell'argomento Pub/Sub. Tuttavia, non elimina l'argomento o la sottoscrizione associata al feed. Devi eliminarli manualmente se non sono più necessari.
Prima di eliminare il feed o la sottoscrizione, assicurati che le applicazioni dei sottoscrittori abbiano elaborato tutti i messaggi in sospeso nella sottoscrizione Pub/Sub.
REST
Per eliminare un feed di modifiche dei metadati, utilizza il
projects.locations.metadataFeeds.delete
metodo.
Esegui questo comando:
gcurl -X DELETE \
"https://${DATAPLEX_API}/metadataFeeds/FEED_ID"
Sostituisci quanto segue:
FEED_ID: l'ID del feed di modifiche dei metadati che vuoi eliminare, ad esempioexample-feed
Utilizza i messaggi di notifica
Dopo aver configurato un feed di modifiche dei metadati, Dataplex Universal Catalog pubblica i messaggi nell'argomento Pub/Sub specificato quando si verificano modifiche dei metadati. Per utilizzare questi messaggi, crea una sottoscrizione Pub/Sub per l'argomento.
Ad esempio, puoi creare una sottoscrizione pull e utilizzare Google Cloud CLI per visualizzare i messaggi:
Crea una sottoscrizione:
gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic=TOPIC_IDSostituisci quanto segue:
SUBSCRIPTION_ID: l'ID sottoscrizione che vuoi creareTOPIC_ID: l'ID dell'argomento Pub/Sub in cui vengono pubblicati i messaggi dei feed di modifiche dei metadati.
Esegui il pull dei messaggi dalla sottoscrizione:
gcloud pubsub subscriptions pull SUBSCRIPTION_ID --auto-ack --limit=10Sostituisci quanto segue:
SUBSCRIPTION_ID: l'ID sottoscrizione da cui vuoi eseguire il pull dei messaggi
Per saperne di più sull'elaborazione dei messaggi Pub/Sub, consulta Ricevere messaggi da una sottoscrizione pull. Per informazioni su il formato dei messaggi, consulta Payload dei dati.
Passaggi successivi
- Leggi la panoramica dei feed di modifiche dei metadati.
- Scopri di più su IAM e sul controllo dell'accesso di Dataplex Universal Catalog.
- Risolvi i problemi relativi ai feed di modifiche dei metadati.