Ricevere notifiche con i feed di modifica dei metadati

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.

  1. 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'autorizzazione serviceusage.services.enable. Scopri come concedere i ruoli.

    Abilita le API

  2. Crea un argomento Pub/Sub per ricevere le notifiche. Per saperne di più, consulta Creare un argomento.

  3. Installa gcloud. Assicurati che sia impostato l'alias breve di gcloud.

  4. 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"'
    
  5. 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 Dataplex
    • LOCATION: la località in cui viene eseguito il job, ad esempio us-central1, europe-west3 o asia-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:

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.create sul progetto
    • dataplex.entryGroups.export sulla risorsa che definisce l'ambito del feed (organizzazione, progetto o gruppo di voci)
    • resourcemanager.projects.get sul progetto
    • resourcemanager.projects.list sul progetto
  • Accedi ai messaggi dei feed di modifiche dei metadati:
    • pubsub.subscriptions.consume sulla sottoscrizione
    • pubsub.topics.attachSubscription sull'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.

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

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

  1. Nella Google Cloud console, vai alla pagina Argomenti di Pub/Sub.

    Vai agli argomenti

  2. Seleziona l'argomento che utilizzi per le notifiche dei feed di metadati e, se necessario, fai clic su Mostra riquadro informazioni.

  3. Nella scheda Autorizzazioni, fai clic su Aggiungi entità.

  4. Nel campo Nuove entità, inserisci il account di servizio Dataplex Universal Catalog : service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com.

  5. Nel campo Assegna ruoli, seleziona Pub/Sub Publisher.

  6. 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 esempio example-project
  • TOPIC_ID: l'ID dell'argomento Pub/Sub in cui vengono pubblicati i messaggi dei feed di modifiche dei metadati, ad esempio example-topic
  • FEED_ID: l'ID del feed di modifiche dei metadati che vuoi creare, ad esempio example-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 esempio example-project
  • TOPIC_ID: l'ID dell'argomento Pub/Sub in cui vengono pubblicati i messaggi dei feed di modifiche dei metadati, ad esempio example-topic
  • FEED_ID: l'ID del feed di modifiche dei metadati che vuoi creare, ad esempio example-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 esempio example-project
  • LOCATION: la località in cui vuoi creare il feed, ad esempio us-central1
  • ENTRY_GROUP_ID: l'ID del gruppo di voci da monitorare, ad esempio example-entry-group
  • TOPIC_ID: l'ID dell'argomento Pub/Sub in cui vengono pubblicati i messaggi dei feed di modifiche dei metadati, ad esempio example-topic
  • FEED_ID: l'ID del feed di modifiche dei metadati che vuoi creare, ad esempio example-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 esempio example-project
  • TOPIC_ID: l'ID dell'argomento Pub/Sub in cui vengono pubblicati i messaggi dei feed di modifiche dei metadati, ad esempio example-topic
  • FEED_ID: l'ID del feed di modifiche dei metadati che vuoi creare, ad esempio example-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 esempio example-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 esempio example-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 esempio example-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:

  1. Crea una sottoscrizione:

    gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic=TOPIC_ID
    

    Sostituisci quanto segue:

    • SUBSCRIPTION_ID: l'ID sottoscrizione che vuoi creare
    • TOPIC_ID: l'ID dell'argomento Pub/Sub in cui vengono pubblicati i messaggi dei feed di modifiche dei metadati.
  2. Esegui il pull dei messaggi dalla sottoscrizione:

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

    Sostituisci 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