Menerima peristiwa menggunakan pesan Pub/Sub (gcloud CLI)

Panduan memulai ini menunjukkan cara men-deploy layanan Cloud Run yang tidak diautentikasi yang menerima peristiwa menggunakan Pub/Sub.

Dalam panduan memulai ini, Anda akan:

  1. Men-deploy layanan penerima peristiwa ke Cloud Run.

  2. Buat pemicu Eventarc.

  3. Publikasikan pesan ke topik Pub/Sub untuk membuat peristiwa, dan lihat di log Cloud Run.

Sebelum memulai

Batasan keamanan yang ditentukan oleh organisasi mungkin mencegah Anda menyelesaikan langkah-langkah berikut. Untuk mengetahui informasi pemecahan masalah, lihat Mengembangkan aplikasi di lingkungan Google Cloud yang terbatas.

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. Install the Google Cloud CLI.
  3. To initialize the gcloud CLI, run the following command:

    gcloud init
  4. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Enable the Cloud Run, Cloud Logging, Pub/Sub, and Eventarc APIs:

    gcloud services enable run.googleapis.com logging.googleapis.com pubsub.googleapis.com eventarc.googleapis.com
  7. Install the Google Cloud CLI.
  8. To initialize the gcloud CLI, run the following command:

    gcloud init
  9. Create or select a Google Cloud project.

    • Create a Google Cloud project:

      gcloud projects create PROJECT_ID

      Replace PROJECT_ID with a name for the Google Cloud project you are creating.

    • Select the Google Cloud project that you created:

      gcloud config set project PROJECT_ID

      Replace PROJECT_ID with your Google Cloud project name.

  10. Make sure that billing is enabled for your Google Cloud project.

  11. Enable the Cloud Run, Cloud Logging, Pub/Sub, and Eventarc APIs:

    gcloud services enable run.googleapis.com logging.googleapis.com pubsub.googleapis.com eventarc.googleapis.com
  12. Update komponen Google Cloud CLI:
    gcloud components update
  13. Login menggunakan akun Anda:
    gcloud auth login
  14. Tetapkan variabel konfigurasi yang digunakan dalam panduan memulai ini:
    gcloud config set run/region us-central1
    gcloud config set run/platform managed
    gcloud config set eventarc/location us-central1
  15. Jika Anda adalah project creator, Anda diberi peran Pemilik dasar (roles/owner). Secara default, peran Identity and Access Management (IAM) ini mencakup izin yang diperlukan untuk akses penuh ke sebagian besar resource Google Cloud dan Anda dapat melewati langkah ini.

    Jika Anda bukan project creator, izin yang diperlukan harus diberikan pada project kepada akun utama yang sesuai. Misalnya, akun utama dapat berupa Akun Google (untuk pengguna akhir) atau akun layanan (untuk aplikasi dan workload komputasi). Untuk mengetahui informasi selengkapnya, lihat halaman eran dan izin untuk tujuan peristiwa Anda.

    Izin yang diperlukan

    Untuk mendapatkan izin yang Anda perlukan untuk menyelesaikan panduan memulai ini, minta administrator untuk memberi Anda peran IAM berikut di project Anda:

    Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

    Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

  16. Jika Anda mengaktifkan agen layanan Cloud Pub/Sub pada atau sebelum 8 April 2021, untuk mendukung permintaan push Pub/Sub yang diautentikasi, berikan peran Service Account Token Creator (roles/iam.serviceAccountTokenCreator) ke agen layanan. Jika tidak, peran ini akan diberikan secara default:
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member=serviceAccount:service-PROJECT_NUMBER@gcp-sa-pubsub.iam.gserviceaccount.com \
        --role=roles/iam.serviceAccountTokenCreator
  17. Ganti PROJECT_NUMBER dengan Google Cloudnomor project Anda. Anda dapat menemukan nomor project di halaman Selamat Datang pada Konsol Google Cloud atau dengan menjalankan perintah berikut:

    gcloud projects describe PROJECT_ID --format='value(projectNumber)'

Men-deploy penerima peristiwa ke Cloud Run

Deploy layanan Cloud Run yang akan menerima dan mencatat peristiwa ke dalam log menggunakan image bawaan, us-docker.pkg.dev/cloudrun/container/hello:

gcloud run deploy helloworld-events-pubsub-quickstart \
    --image=us-docker.pkg.dev/cloudrun/container/hello \
    --allow-unauthenticated

Jika Anda melihat URL layanan, berarti deployment selesai.

Membuat pemicu Eventarc

Pemicu peristiwa mengirim pesan ke layanan penerima peristiwa yang di-deploy di Cloud Run saat pesan dipublikasikan ke topik Pub/Sub.

  1. Buat pemicu untuk memproses pesan Pub/Sub:

    Topik pub/sub baru

    gcloud eventarc triggers create events-pubsub-trigger \
        --destination-run-service=helloworld-events-pubsub-quickstart \
        --destination-run-region=us-central1 \
        --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished"
    

    Tindakan ini akan membuat topik Pub/Sub baru dan pemicu untuk topik tersebut yang disebut events-pubsub-trigger.

    Topik Pub/Sub yang ada

    gcloud eventarc triggers create events-pubsub-trigger \
        --destination-run-service=helloworld-events-pubsub-quickstart \
        --destination-run-region=us-central1 \
        --event-filters="type=google.cloud.pubsub.topic.v1.messagePublished" \
        --transport-topic=projects/PROJECT_ID/topics/TOPIC_ID
    

    Ganti kode berikut:

    • PROJECT_ID: Google Cloud project ID Anda
    • TOPIC_ID: ID topik Pub/Sub yang ada

    Tindakan ini akan membuat pemicu yang disebut events-pubsub-trigger untuk topik Pub/Sub yang ada.

    Perhatikan bahwa saat membuat pemicu Eventarc untuk pertama kalinya dalam project Google Cloud , mungkin akan ada penundaan dalam penyediaan agen layanan Eventarc. Masalah ini biasanya dapat diatasi dengan mencoba membuat ulang pemicu. Untuk informasi selengkapnya, lihat Error izin ditolak.

  2. Konfirmasi bahwa pemicu berhasil dibuat:

    gcloud eventarc triggers list --location=us-central1
    

    events-pubsub-trigger tercantum dengan tujuan yang merupakan layanan Cloud Run, helloworld-events-pubsub-quickstart.

Membuat dan melihat peristiwa topik Pub/Sub

Anda dapat membuat peristiwa Eventarc dengan memublikasikan pesan ke topik Pub/Sub.

  1. Cari dan tetapkan topik Pub/Sub sebagai variabel lingkungan:

    export RUN_TOPIC=$(gcloud eventarc triggers describe events-pubsub-trigger \
        --format='value(transport.pubsub.topic)')
    
  2. Publikasikan pesan ke topik Pub/Sub untuk membuat peristiwa:

    gcloud pubsub topics publish $RUN_TOPIC --message "Hello World!"
    

    Peristiwa dirutekan ke layanan Cloud Run, yang mencatat pesan peristiwa ke dalam log.

  3. Untuk melihat entri log terkait peristiwa yang dibuat oleh layanan Anda, jalankan perintah berikut:

    gcloud logging read 'jsonPayload.message: "Received event of type google.cloud.pubsub.topic.v1.messagePublished"'
    
  4. Cari entri log yang mirip dengan:

    jsonPayload:
    ...
    message: 'Received event of type google.cloud.pubsub.topic.v1.messagePublished.
        Event data: Hello World!'
    

Selamat! Anda telah berhasil men-deploy layanan penerima peristiwa ke Cloud Run, membuat pemicu Eventarc, membuat peristiwa dari Pub/Sub, dan menampilkannya di log Cloud Run.

Pembersihan

Setelah menyelesaikan tugas yang dijelaskan dalam dokumen ini, Anda dapat menghindari penagihan berkelanjutan dengan menghapus resource yang Anda buat.

Anda dapat:

  1. Hapus layanan Cloud Run.

  2. Hapus pemicu Eventarc.

    Tindakan ini juga akan menghapus topik Pub/Sub terkait.

Atau, Anda dapat menghapus project Google Cloud untuk menghindari tagihan. Menghapus project Google Cloud Anda akan menghentikan penagihan untuk semua resource yang digunakan dalam project tersebut.

Delete a Google Cloud project:

gcloud projects delete PROJECT_ID

Jika Anda berencana mempelajari beberapa tutorial dan panduan memulai, menggunakan kembali project dapat help you avoid exceeding project quota limits.

Langkah berikutnya