Dokumen ini menjelaskan cara mengonfigurasi feed perubahan metadata Dataplex Universal Catalog untuk menerima notifikasi melalui Pub/Sub saat metadata dalam Dataplex Universal Catalog dibuat, diperbarui, atau dihapus.
Untuk mengetahui informasi selengkapnya tentang feed perubahan metadata, lihat Ringkasan feed perubahan metadata.
Sebelum memulai
Pahami Pub/Sub dan Dataplex Universal Catalog API.
-
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 theserviceusage.services.enablepermission. Learn how to grant roles. Buat topik Pub/Sub untuk menerima notifikasi. Untuk mengetahui informasi selengkapnya, lihat Membuat topik.
Instal
gcloud. Pastikan alias pendekgcloudtelah ditetapkan.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 Dataplex Universal Catalog memiliki peran dan izin IAM yang diperlukan.
Peran dan izin pengguna
Untuk mendapatkan izin yang diperlukan untuk mengekspor metadata dan mengakses pesan feed perubahan metadata, minta administrator untuk memberi Anda peran IAM berikut pada project atau organisasi:
-
Ekspor metadata:
Pengekspor Grup Entri Dataplex (
roles/dataplex.entryGroupExporter) -
Mengakses 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:
-
Mengekspor metadata:
-
dataplex.metadataFeeds.createdalam project -
dataplex.entryGroups.exportpada resource yang menentukan cakupan feed (Organisasi, Project, atau Grup Entri) -
resourcemanager.projects.getdalam project -
resourcemanager.projects.listdalam project
-
-
Mengakses pesan feed perubahan metadata:
-
pubsub.subscriptions.consumepada langganan -
pubsub.topics.attachSubscriptiontentang topik
-
Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.
Peran dan izin akun layanan Dataplex Universal Catalog
Untuk memastikan akun layanan Dataplex Universal Catalog memiliki izin yang diperlukan untuk memublikasikan pesan feed perubahan metadata, minta administrator Anda untuk memberikan peran IAM Pub/Sub Publisher (roles/pubsub.publisher) kepada akun layanan Dataplex Universal Catalog di topik Pub/Sub.
Peran bawaan ini berisi izin
pubsub.topics.publish
yang diperlukan untuk
memublikasikan pesan feed perubahan metadata.
Administrator Anda mungkin juga dapat memberi akun layanan Dataplex Universal Catalog izin ini dengan peran khusus atau peran bawaan lainnya.
Memberikan izin ke akun layanan Dataplex Universal Catalog
Agen layanan Dataplex Universal Catalog dibuat saat Anda mengaktifkan Dataplex API. Anda dapat mengidentifikasi agen layanan berdasarkan emailnya:
service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com
Di sini, PROJECT_NUMBER adalah nomor project tempat Anda mengaktifkan Dataplex API.
Akun layanan Dataplex Universal Catalog
memerlukan kemampuan untuk memublikasikan pesan ke topik Pub/Sub Anda.
Untuk memberikan izin ini, berikan
peran Pub/Sub Publisher
(roles/pubsub.publisher) kepada 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"
Ganti kode berikut:
TOPIC_ID: ID topik Pub/Sub Anda tempat pesan feed perubahan metadata dipublikasikan.PROJECT_NUMBER: nomor project Dataplex Universal Catalog tempat akun layanan berada.
Konsol
Di konsol Google Cloud , buka halaman Topics Pub/Sub.
Pilih topik yang Anda gunakan untuk notifikasi feed metadata dan jika diperlukan, klik Tampilkan panel info.
Di tab Permissions, klik Add principal.
Di kolom New principals, masukkan akun layanan Dataplex Universal Catalog:
service-PROJECT_NUMBER@gcp-sa-dataplex.iam.gserviceaccount.com.Di kolom Assign roles, pilih Pub/Sub Publisher.
Klik Simpan.
Membuat feed perubahan metadata
Untuk mengontrol perubahan mana yang memicu 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 Dataplex Universal Catalog mengirimkan notifikasi.
Untuk mengetahui informasi selengkapnya, lihat Feed perubahan metadata.
REST
Untuk membuat feed perubahan metadata, gunakan metode
projects.locations.metadataFeeds.create.
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 menurut 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 metode
projects.locations.metadataFeeds.get.
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 metode
projects.locations.metadataFeeds.list.
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 memublikasikan perubahan metadata baru ke topik Pub/Sub Anda. Namun, tindakan ini tidak 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 diproses 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, Dataplex Universal Catalog akan memublikasikan pesan ke topik Pub/Sub yang ditentukan saat perubahan metadata terjadi. 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 yang ingin Anda tarik pesannya
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 Dataplex Universal Catalog.
- Memecahkan masalah feed perubahan metadata.