Menstreaming perubahan ke Pub/Sub menggunakan pemicu fungsi Cloud Run opsional

Tutorial ini menunjukkan cara menggunakan template Bigtable change streams to Pub/Sub, termasuk cara menyiapkan topik dan mengonfigurasi template. Secara opsional, Anda dapat membuat fungsi Cloud Run, dalam bahasa pemrograman pilihan Anda, yang dipicu oleh aliran peristiwa.

Tutorial ini ditujukan bagi pengguna teknis yang sudah memahami Bigtable, penulisan kode, dan layanan streaming peristiwa.

Tujuan

Tutorial ini menunjukkan kepada Anda cara melakukan hal berikut:

  • Buat tabel Bigtable dengan aliran perubahan yang diaktifkan.
  • Buat topik Pub/Sub dengan skema aliran perubahan Bigtable.
  • Deploy aliran data perubahan Bigtable ke pipeline Pub/Sub di Dataflow menggunakan template.
  • Lihat aliran peristiwa di Pub/Sub secara langsung atau di log fungsi Cloud Run.

Biaya

Dalam dokumen ini, Anda akan menggunakan komponen Google Cloudyang dapat ditagih berikut:

Untuk membuat perkiraan biaya berdasarkan proyeksi penggunaan Anda, gunakan kalkulator harga.

Pengguna Google Cloud baru mungkin memenuhi syarat untuk mendapatkan uji coba gratis.

Setelah menyelesaikan tugas yang dijelaskan dalam dokumen ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus resource yang Anda buat. Untuk mengetahui informasi selengkapnya, baca bagian Pembersihan.

Sebelum memulai

    Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.

    In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

    Verify that billing is enabled for your Google Cloud project.

    Enable the Dataflow, Cloud Bigtable API, Cloud Bigtable Admin API, Pub/Sub, Cloud Run functions, and Cloud Storage APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

    In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

    Verify that billing is enabled for your Google Cloud project.

    Enable the Dataflow, Cloud Bigtable API, Cloud Bigtable Admin API, Pub/Sub, Cloud Run functions, and Cloud Storage APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

    Di konsol Google Cloud , aktifkan Cloud Shell.

    Aktifkan Cloud Shell

    Di bagian bawah konsol Google Cloud , sesi Cloud Shell akan dimulai dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi pada sesi.

  1. Update dan instal CLI cbt .
    gcloud components update
    gcloud components install cbt

Membuat topik Pub/Sub

  1. Di konsol Google Cloud , buka halaman Topics Pub/Sub.

    Buka Topik

  2. Klik Create topic.

  3. Setel ID ke bigtable-change-stream-topic.

  4. Pilih Gunakan skema.

  5. Di menu drop-down Select a Pub/Sub schema, klik Create new schema. Tindakan ini akan membuka tab baru tempat Anda menentukan skema.

    1. Tetapkan ID skema ke bigtable-change-stream-schema.
    2. Tetapkan jenis skema ke Avro.
    3. Tempelkan kode berikut sebagai definisi skema. Informasi selengkapnya tentang skema dapat ditemukan di halaman dokumentasi template.
      {
          "name" : "ChangelogEntryMessage",
          "type" : "record",
          "namespace" : "com.google.cloud.teleport.bigtable",
          "fields" : [
            { "name" : "rowKey", "type" : "bytes"},
            {
              "name" : "modType",
              "type" : {
                "name": "ModType",
                "type": "enum",
                "symbols": ["SET_CELL", "DELETE_FAMILY", "DELETE_CELLS", "UNKNOWN"]}
            },
            { "name": "isGC", "type": "boolean" },
            { "name": "tieBreaker", "type": "int"},
            { "name": "columnFamily", "type": "string"},
            { "name": "commitTimestamp", "type" : "long"},
            { "name" : "sourceInstance", "type" : "string"},
            { "name" : "sourceCluster", "type" : "string"},
            { "name" : "sourceTable", "type" : "string"},
            { "name": "column", "type" : ["null", "bytes"]},
            { "name": "timestamp", "type" : ["null", "long"]},
            { "name": "timestampFrom", "type" : ["null", "long"]},
            { "name": "timestampTo", "type" : ["null", "long"]},
            { "name" : "value", "type" : ["null", "bytes"]}
        ]
      }
    
    1. Klik Buat untuk membuat skema.
  6. Tutup tab Buat skema, muat ulang daftar skema, lalu pilih skema yang baru Anda tentukan.

  7. Klik Create untuk membuat topik.

Opsional: Membuat Cloud Run Function

Anda mungkin ingin memproses aliran Pub/Sub dengan fungsi Cloud Run.

  1. Di halaman Details untuk topik bigtable-change-stream-topic, klik Trigger Cloud Function .
  2. Di kolom Nama fungsi, masukkan nama bt-ps-tutorial-function.
  3. Di bagian Source Code, klik drop-down Runtime, lalu pilih runtime dan bahasa pemrograman pilihan Anda. hello world dibuat yang mencetak aliran perubahan saat masuk. Lihat dokumentasi untuk mempelajari lebih lanjut cara menulis fungsi Cloud Run.
  4. Gunakan nilai default untuk semua kolom lainnya.
  5. Klik Deploy function.

Membuat tabel dengan aliran perubahan yang diaktifkan

  1. Di konsol Google Cloud , buka halaman Instances Bigtable.

    Buka Instances

  2. Klik ID instance yang Anda gunakan untuk tutorial ini.

    Jika Anda tidak memiliki instance yang tersedia, buat instance dengan konfigurasi default di wilayah terdekat.

  3. Di panel navigasi kiri, klik Tabel.

  4. Klik Buat tabel.

  5. Beri nama tabel change-streams-pubsub-tutorial.

  6. Tambahkan grup kolom bernama cf.

  7. Pilih Aktifkan aliran perubahan.

  8. Klik Create.

Menginisialisasi pipeline data untuk merekam aliran perubahan

  1. Di halaman Tables Bigtable, temukan tabel Anda change-streams-pubsub-tutorial.
  2. Di kolom Change stream, klik Connect.
  3. Dalam dialog, pilih Pub/Sub.
  4. Klik Buat tugas Dataflow.
  5. Di halaman Dataflow Create job, tetapkan nama topik Pub/Sub output ke: bigtable-change-stream-topic.
  6. Setel ID profil aplikasi Bigtable ke default.
  7. Klik Jalankan tugas.
  8. Tunggu hingga status tugas menjadi Starting atau Running sebelum melanjutkan. Proses ini memerlukan waktu sekitar 5 menit setelah tugas dimasukkan dalam antrean.

Menulis beberapa data ke Bigtable

  1. Di Cloud Shell, tulis beberapa baris ke Bigtable sehingga log perubahan dapat menulis beberapa data ke aliran Pub/Sub. Selama Anda menulis data setelah tugas dibuat, perubahan akan muncul. Anda tidak perlu menunggu hingga status tugas menjadi running.

    cbt -instance=BIGTABLE_INSTANCE_ID -project=YOUR_PROJECT_ID \
        set change-streams-pubsub-tutorial user123 cf:col1=abc
    cbt -instance=BIGTABLE_INSTANCE_ID -project=YOUR_PROJECT_ID \
        set change-streams-pubsub-tutorial user546 cf:col1=def
    cbt -instance=BIGTABLE_INSTANCE_ID -project=YOUR_PROJECT_ID \
        set change-streams-pubsub-tutorial user789 cf:col1=ghi
    

Melihat log perubahan di Pub/Sub

  1. Di konsol Google Cloud , buka halaman Subscriptions Pub/Sub.

    Buka Langganan

  2. Klik langganan yang dibuat secara otomatis untuk topik Anda bigtable-change-stream-topic. Class ini harus diberi nama bigtable-change-stream-topic-sub.

  3. Buka tab Pesan.

  4. Klik Pull.

  5. Jelajahi daftar pesan dan lihat data yang Anda tulis.

    Pesan log perubahan di
Pub/Sub

Opsional: Melihat perubahan di log fungsi Cloud Run

Jika Anda membuat fungsi Cloud Run Functions, Anda dapat melihat perubahan di log.

  1. Di konsol Google Cloud , buka Cloud Run functions.

    Buka Cloud Run Functions

  2. Klik fungsi Anda bt-ps-tutorial-function.

  3. Buka tab Log.

  4. Pastikan Severity disetel ke setidaknya Info agar Anda dapat melihat log.

  5. Jelajahi log dan lihat data yang Anda tulis.

Outputnya akan terlihat mirip seperti berikut:

Pub/Sub message: {"rowKey":"user789","modType":"SET_CELL","isGC":false,"tieBreaker":0,"columnFamily":"cf","commitTimestamp":1695653833064548,"sourceInstance":"YOUR-INSTANCE","sourceCluster":"YOUR-INSTANCE-c1","sourceTable":"change-streams-pubsub-tutorial","column":{"bytes":"col1"},"timestamp":{"long":1695653832278000},"timestampFrom":null,"timestampTo":null,"value":{"bytes":"ghi"}}

Pembersihan

Agar tidak perlu membayar biaya pada akun Google Cloud Anda untuk resource yang digunakan dalam tutorial ini, hapus project yang berisi resource tersebut, atau simpan project dan hapus setiap resource.

Menghapus tabel Bigtable

  1. Di konsol Google Cloud , buka halaman Instances Bigtable.

    Buka Instances

  2. Klik ID instance yang Anda gunakan untuk tutorial ini.

  3. Di panel navigasi kiri, klik Tabel.

  4. Temukan tabel change-streams-pubsub-tutorial.

  5. Klik Edit.

  6. Hapus centang Aktifkan aliran perubahan.

  7. Klik Simpan.

  8. Buka menu tambahan untuk tabel.

  9. Klik Hapus dan masukkan nama tabel untuk mengonfirmasi.

Menghentikan pipeline aliran perubahan

  1. Di konsol Google Cloud , buka halaman Tugas Dataflow.

    Buka Tugas

  2. Pilih tugas streaming Anda dari daftar tugas.

  3. Di navigasi, klik Berhenti.

  4. Dalam dialog Stop job, batalkan pipeline Anda, lalu klik Stop job.

Menghapus topik dan langganan Pub/Sub

  1. Di konsol Google Cloud , buka halaman Topics Pub/Sub.

    Buka Topik

  2. Pilih topik bigtable-change-stream-topic.

  3. Klik Hapus dan konfirmasi.

  4. Klik Subscriptions di sidebar.

  5. Pilih langganan bigtable-change-stream-topic-sub.

  6. Klik Hapus dan konfirmasi.

Menghapus fungsi Cloud Run

  1. Di konsol Google Cloud , buka Cloud Run functions.

    Buka Cloud Run Functions

  2. Pilih fungsi bt-ps-tutorial-function.

  3. Klik Hapus dan konfirmasi.

Langkah berikutnya