Dokumen ini menjelaskan cara mengonfigurasi feed perubahan metadata Knowledge Catalog (sebelumnya Dataplex Universal Catalog) untuk menerima notifikasi melalui Pub/Sub saat metadata dalam Knowledge Catalog dibuat, diperbarui, atau dihapus.
Untuk mengetahui informasi selengkapnya tentang feed perubahan metadata, lihat Ringkasan feed perubahan metadata.
Sebelum memulai
Pelajari Pub/Sub dan Dataplex API.
-
Aktifkan Dataplex API dan Pub/Sub API.
Peran yang diperlukan untuk mengaktifkan API
Untuk mengaktifkan API, Anda memerlukan peran IAM Service Usage Admin (
roles/serviceusage.serviceUsageAdmin), yang berisi izinserviceusage.services.enable. Pelajari cara memberikan peran. Buat topik Pub/Sub untuk menerima notifikasi. Untuk mengetahui informasi selengkap nya, lihat Membuat topik.
Instal
gcloud. Pastikan alias singkatgcloudditetapkan.Tetapkan alias
gcurl. Tindakan ini akan membuat pintasan yang menyertakan token autentikasi Anda dan menetapkan jenis konten JSON untuk permintaan API:alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'Tetapkan variabel
DATAPLEX_API:DATAPLEX_API="dataplex.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION"Ganti kode berikut:
PROJECT_ID: project ID Anda tempat Dataplex API diaktifkanLOCATION: lokasi tempat tugas berjalan—misalnya,us-central1,europe-west3, atauasia-south1
Peran dan izin yang diperlukan
Untuk mengonfigurasi feed perubahan metadata, pastikan Anda dan akun layanan Knowledge Catalog memiliki peran dan izin IAM yang diperlukan.
Peran dan izin pengguna
Untuk mendapatkan izin yang Anda perlukan untuk mengekspor metadata dan mengakses pesan feed perubahan metadata, minta administrator untuk memberi Anda peran IAM berikut di project atau organisasi:
-
Ekspor metadata:
Dataplex Entry Group Exporter (
roles/dataplex.entryGroupExporter) -
Akses pesan feed perubahan metadata:
Pub/Sub Subscriber (
roles/pubsub.subscriber)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Peran bawaan ini berisi izin yang diperlukan untuk mengekspor metadata dan mengakses pesan feed perubahan metadata. Untuk melihat izin yang benar-benar diperlukan, perluas bagian Izin yang diperlukan:
Izin yang diperlukan
Izin berikut diperlukan untuk mengekspor metadata dan mengakses pesan feed perubahan metadata:
-
Ekspor metadata:
-
dataplex.metadataFeeds.createdi project -
dataplex.entryGroups.exportdi resource yang menentukan cakupan feed (Organisasi, Project, atau Grup Entri) -
resourcemanager.projects.getdi project -
resourcemanager.projects.listdi project
-
-
Akses pesan feed perubahan metadata:
-
pubsub.subscriptions.consumedi langganan -
pubsub.topics.attachSubscriptiondi topik
-
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Peran dan izin akun layanan Knowledge Catalog
Untuk memastikan akun layanan Knowledge Catalog memiliki izin yang diperlukan untuk memublikasikan pesan feed perubahan metadata, minta administrator untuk memberikan peran IAM Pub/Sub Publisher (roles/pubsub.publisher) dan Pub/Sub Viewer (roles/pubsub.viewer) ke akun layanan Knowledge Catalog di topik Pub/Sub.
Peran bawaan ini berisi izin
pubsub.topics.publish dan pubsub.topics.get
,
yang diperlukan untuk
memublikasikan pesan feed perubahan metadata.
Administrator mungkin juga dapat memberi akun layanan Knowledge Catalog izin ini dengan peran khusus atau peran bawaan lainnya.
Memberikan izin ke akun layanan Knowledge Catalog
Agen layanan di Knowledge Catalog dibuat saat Anda mengaktifkan Dataplex API. Anda dapat mengidentifikasi agen layanan berdasarkan ID emailnya:
service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com
Di sini, PROJECT_NUMBER adalah nomor project tempat Anda mengaktifkan Dataplex API.
Akun layanan Knowledge Catalog memerlukan kemampuan untuk memublikasikan pesan ke topik Pub/Sub Anda dan mengambil metadata topik.
Untuk memberikan izin ini, berikan peran Pub/Sub Publisher (roles/pubsub.publisher) dan peran Pub/Sub Viewer (roles/pubsub.viewer) ke akun layanan di topik Pub/Sub:
gcloud
Jalankan perintah gcloud pubsub topics add-iam-policy-binding:
gcloud pubsub topics add-iam-policy-binding TOPIC_ID \
--member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com" \
--role="roles/pubsub.publisher"
gcloud pubsub topics add-iam-policy-binding TOPIC_ID \
--member="serviceAccount:service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com" \
--role="roles/pubsub.viewer"
Ganti kode berikut:
TOPIC_ID: ID topik Pub/Sub Anda tempat pesan feed perubahan metadata dipublikasikan.PROJECT_NUMBER: nomor project project Knowledge Catalog Anda tempat akun layanan berada.
Konsol
Di Google Cloud konsol, buka halaman Topics Pub/Sub.
Pilih topik yang Anda gunakan untuk notifikasi feed metadata dan jika diperlukan, klik Show info panel.
Di tab Permissions, klik Add principal.
Di kolom New principals, masukkan akun layanan Knowledge Catalog :
service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com.Di kolom Assign roles, pilih Pub/Sub Publisher.
Klik Add another role , lalu pilih Pub/Sub Viewer.
Klik Save.
Membuat feed perubahan metadata
Untuk mengontrol perubahan yang menghasilkan notifikasi, Anda dapat mengonfigurasi feed perubahan metadata untuk memantau resource tertentu. Anda melakukannya dengan menentukan cakupan, seperti seluruh organisasi, project tertentu, atau grup entri tertentu. Meskipun cakupan memungkinkan Anda menentukan resource mana yang akan dipantau, Anda dapat menggunakan filter untuk lebih menyempurnakan kapan Knowledge Catalog mengirim notifikasi.
Untuk mengetahui informasi selengkapnya, lihat Feed perubahan metadata.
REST
Untuk membuat feed perubahan metadata, gunakan
projects.locations.metadataFeeds.create
metode.
Cakupan organisasi
Jalankan perintah berikut untuk membuat feed perubahan metadata yang memantau seluruh organisasi:
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"
Ganti kode berikut:
PROJECT_ID_PUBSUB: project ID tempat topik Pub/Sub berada—misalnya,example-projectTOPIC_ID: ID topik Pub/Sub tempat pesan feed perubahan metadata dipublikasikan—misalnya,example-topicFEED_ID: ID feed perubahan metadata yang ingin Anda buat—misalnya,example-feed
Cakupan project
Jalankan perintah berikut untuk membuat feed perubahan metadata yang memantau project tertentu:
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"
Ganti kode berikut:
PROJECT_ID_PUBSUB: project ID tempat topik Pub/Sub berada—misalnya,example-projectTOPIC_ID: ID topik Pub/Sub tempat pesan feed perubahan metadata dipublikasikan—misalnya,example-topicFEED_ID: ID feed perubahan metadata yang ingin Anda buat—misalnya,example-feed
Cakupan grup entri
Jalankan perintah berikut untuk membuat feed perubahan metadata yang memantau grup entri tertentu:
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"
Ganti kode berikut:
PROJECT_ID_PUBSUB: project ID tempat topik Pub/Sub berada—misalnya,example-projectLOCATION: lokasi tempat Anda ingin membuat feed—misalnya,us-central1ENTRY_GROUP_ID: ID grup entri yang akan dipantau—misalnya,example-entry-groupTOPIC_ID: ID topik Pub/Sub tempat pesan feed perubahan metadata dipublikasikan—misalnya,example-topicFEED_ID: ID feed perubahan metadata yang ingin Anda buat—misalnya,example-feed
Dengan filter
Jalankan perintah berikut untuk membuat feed perubahan metadata dengan filter (memfilter berdasarkan jenis entri):
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"
Ganti kode berikut:
PROJECT_ID_PUBSUB: project ID tempat topik Pub/Sub berada—misalnya,example-projectTOPIC_ID: ID topik Pub/Sub tempat pesan feed perubahan metadata dipublikasikan—misalnya,example-topicFEED_ID: ID feed perubahan metadata yang ingin Anda buat—misalnya,example-feed
Respons:
{
"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
}
Melihat feed perubahan metadata
Anda dapat melihat detail feed perubahan metadata.
REST
Untuk melihat feed perubahan metadata, gunakan
projects.locations.metadataFeeds.get
metode.
Jalankan perintah berikut:
gcurl "https://${DATAPLEX_API}/metadataFeeds/FEED_ID"
Ganti kode berikut:
FEED_ID: ID feed perubahan metadata yang ingin Anda lihat—misalnya,example-feed
Mencantumkan feed perubahan metadata
Anda dapat mencantumkan feed perubahan metadata dalam project dan lokasi.
REST
Untuk mencantumkan feed perubahan metadata, gunakan
projects.locations.metadataFeeds.list
metode.
Jalankan perintah berikut:
gcurl "https://${DATAPLEX_API}/metadataFeeds"
Memperbarui feed perubahan metadata
Anda dapat memperbarui cakupan atau filter feed perubahan metadata yang ada.
REST
Untuk memperbarui feed perubahan metadata, gunakan metode
projects.locations.metadataFeeds.patch.
Jalankan perintah berikut untuk memperbarui feed perubahan metadata guna menghapus filter jenis entri:
gcurl -X PATCH -d "$(cat <<EOF
{
"filter": {
"entryTypes": []
}
}
EOF
)" "https://${DATAPLEX_API}/metadataFeeds/FEED_ID?updateMask=filter"
Ganti kode berikut:
FEED_ID: ID feed perubahan metadata yang ingin Anda perbarui—misalnya,example-feed
Menghapus feed perubahan metadata
Anda dapat menghapus feed perubahan metadata jika tidak perlu lagi menerima notifikasi.
Menghapus feed perubahan metadata akan menghentikan feed untuk memublikasikan perubahan metadata baru ke topik Pub/Sub Anda. Namun, tindakan ini tidak akan menghapus topik atau langganan yang terkait dengan feed. Anda harus menghapusnya secara manual jika tidak diperlukan lagi.
Sebelum menghapus feed atau langganan, pastikan aplikasi pelanggan Anda telah memproses semua pesan yang belum selesai dalam langganan Pub/Sub.
REST
Untuk menghapus feed perubahan metadata, gunakan metode
projects.locations.metadataFeeds.delete.
Jalankan perintah berikut:
gcurl -X DELETE \
"https://${DATAPLEX_API}/metadataFeeds/FEED_ID"
Ganti kode berikut:
FEED_ID: ID feed perubahan metadata yang ingin Anda hapus—misalnya,example-feed
Menggunakan pesan notifikasi
Setelah Anda mengonfigurasi feed perubahan metadata, Knowledge Catalog akan memublikasikan pesan ke topik Pub/Sub yang ditentukan saat terjadi perubahan metadata. Untuk menggunakan pesan ini, buat langganan Pub/Sub ke topik tersebut.
Misalnya, Anda dapat membuat langganan pull dan menggunakan Google Cloud CLI untuk melihat pesan:
Buat langganan:
gcloud pubsub subscriptions create SUBSCRIPTION_ID --topic=TOPIC_IDGanti kode berikut:
SUBSCRIPTION_ID: ID langganan yang ingin Anda buatTOPIC_ID: ID topik Pub/Sub tempat pesan feed perubahan metadata dipublikasikan.
Tarik pesan dari langganan:
gcloud pubsub subscriptions pull SUBSCRIPTION_ID --auto-ack --limit=10Ganti kode berikut:
SUBSCRIPTION_ID: ID langganan tempat Anda ingin menarik pesan
Untuk mengetahui informasi selengkapnya tentang pemrosesan pesan Pub/Sub, lihat Menerima pesan dari langganan pull. Untuk mengetahui informasi tentang format pesan, lihat Payload data.
Langkah berikutnya
- Baca Ringkasan feed perubahan Metadata.
- Pelajari IAM dan kontrol akses Knowledge Catalog.
- Memecahkan masalah feed perubahan metadata.