Merutekan peristiwa Pemberitahuan Firebase ke Alur Kerja

Pemicu Eventarc menyatakan minat Anda pada peristiwa atau rangkaian peristiwa tertentu. Anda dapat mengonfigurasi pemilihan rute peristiwa dengan menentukan filter untuk pemicu, termasuk sumber peristiwa, dan alur kerja target.

Peristiwa dikirim dalam format CloudEvents melalui permintaan HTTP. Layanan Alur kerja mengonversi peristiwa menjadi objek JSON (mengikuti spesifikasi CloudEvents) dan meneruskan peristiwa ke eksekusi alur kerja sebagai argumen runtime alur kerja. Pastikan ukuran peristiwa tidak melebihi 512 KB. Peristiwa yang lebih besar dari ukuran argumen Workflows maksimum tidak akan memicu eksekusi alur kerja.

Petunjuk ini menunjukkan cara mengonfigurasi pemilihan rute peristiwa sehingga eksekusi alur kerja Anda dipicu sebagai respons terhadap peristiwa Firebase Alerts langsung. Untuk mengetahui detail selengkapnya, lihat daftar peristiwa langsung yang didukung.

Permintaan ke layanan Anda dipicu sebagai respons terhadap peristiwa saat pemberitahuan Firebase dipublikasikan oleh layanan Firebase.

Bersiap untuk membuat pemicu

Sebelum membuat pemicu Eventarc untuk alur kerja target, selesaikan tugas berikut.

Konsol

  1. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat Google Cloud project.

    Buka pemilih project

  2. Aktifkan Eventarc, Eventarc Publishing, Workflows, dan Workflow Executions API.

    Mengaktifkan API

  3. Jika berlaku, aktifkan API yang terkait dengan peristiwa langsung. Misalnya, untuk peristiwa Firebase Alerts , aktifkan APIFirebase Alerts .

  4. Jika Anda belum memilikinya, buat akun layanan yang dikelola pengguna, lalu berikan peran dan izin yang diperlukan agar Eventarc dapat mengelola peristiwa untuk alur kerja target.

    1. Di Konsol Google Cloud, buka halaman Akun layanan.

      Buka Akun Layanan

    2. Pilih project Anda.

    3. Di kolom Nama akun layanan, masukkan nama. Konsol Google Cloud akan mengisi kolom ID akun layanan berdasarkan nama ini.

      Di kolom Deskripsi akun layanan, masukkan sebuah deskripsi. Contoh, Service account for event trigger.

    4. Klik Buat dan lanjutkan.

    5. Untuk memberikan akses yang sesuai, di daftar Select a role, pilih peran Identity and Access Management (IAM) yang diperlukan untuk diberikan ke akun layanan Anda. Untuk mengetahui informasi selengkapnya, lihat Peran dan izin untuk target Alur Kerja.

      Untuk peran tambahan, klik Tambahkan peran lain, lalu tambahkan setiap peran tambahan.

    6. Klik Lanjutkan.

    7. Untuk menyelesaikan pembuatan akun, klik Selesai.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Aktifkan Eventarc, Eventarc Publishing, Workflows, dan Workflow Executions API:

    gcloud services enable eventarc.googleapis.com \
        eventarcpublishing.googleapis.com \
        workflows.googleapis.com \
        workflowexecutions.googleapis.com

  3. Jika berlaku, aktifkan API yang terkait dengan peristiwa langsung. Misalnya, untuk peristiwa Firebase Alerts , aktifkan firestore.googleapis.com.

  4. Jika Anda belum memilikinya, buat akun layanan yang dikelola pengguna, lalu berikan peran dan izin yang diperlukan agar Eventarc dapat mengelola peristiwa untuk alur kerja target.

    1. Buat akun layanan:

      gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

      Ganti SERVICE_ACCOUNT_NAME dengan nama akun layanan. Panjangnya harus antara 6 dan 30 karakter, serta dapat berisi karakter alfanumerik huruf kecil dan tanda pisah. Setelah membuat akun layanan, Anda tidak dapat mengubah namanya.

    2. Berikan peran atau izin Identity and Access Management (IAM) yang diperlukan. Untuk mengetahui informasi selengkapnya, lihat Peran dan izin untuk target Alur Kerja.

Buat pemicu

Anda dapat membuat pemicu Eventarc dengan alur kerja yang di-deploy sebagai penerima peristiwa menggunakan Google Cloud CLI (gcloud atau Terraform), atau melalui konsol Google Cloud.

Konsol

  1. Di konsol Google Cloud, buka halaman Pemicu Eventarc.

    Buka Pemicu

  2. Klik Create trigger.
  3. Ketik Nama pemicu.

    Ini adalah ID pemicu dan harus diawali dengan huruf. Nama dapat berisi maksimal 63 huruf kecil, angka, atau tanda hubung.

  4. Untuk Jenis pemicu, pilih Sumber Google.
  5. Dalam daftar Penyedia peristiwa, pilih Firebase Alerts.

    Perhatikan bahwa nama penyedia peristiwa yang digunakan dalam dokumentasiGoogle Cloud terkait mungkin tidak memiliki awalan Cloud atau Google Cloud. Misalnya, di konsol, Memorystore for Redis disebut sebagai Google Cloud Memorystore for Redis.

  6. Di daftar Jenis peristiwa, dari peristiwa Langsung, pilih jenis peristiwa.
  7. Untuk menentukan encoding payload peristiwa, di daftar Jenis konten data peristiwa, pilih application/json atau application/protobuf.

    Perhatikan bahwa payload peristiwa yang diformat dalam JSON lebih besar daripada payload yang diformat dalam Protobuf. Hal ini dapat memengaruhi keandalan, bergantung pada tujuan peristiwa dan batas ukuran peristiwa. Untuk mengetahui informasi selengkapnya, baca Masalah umum.

  8. Di daftar Region, pilih global (Global).

    Untuk informasi selengkapnya, lihat Lokasi Eventarc.

  9. Di kolom Atribut 1, ID resource alerttype bertindak sebagai filter peristiwa. Pilih operator untuk filter ini:
  10. Di kolom Attribute value 1, masukkan salah satu hal berikut:
    • appDistribution.inAppFeedback: peristiwa dikirim saat penguji mengirimkan masukan dalam aplikasi untuk aplikasi tertentu
    • appDistribution.newTesterIosDevice: peristiwa dikirim saat perangkat penguji iOS baru didaftarkan untuk aplikasi tertentu
    • billing.planAutomatedUpdate: peristiwa dikirim saat paket penagihan untuk project Firebase diperbarui secara otomatis; misalnya, saat paket didowngrade karena masalah pembayaran
    • billing.planUpdate: peristiwa dikirim saat paket penagihan untuk project Firebase diubah oleh pengguna; misalnya, saat akun penagihan dilampirkan ke atau dilepaskan dari project
    • crashlytics.missingSymbolFile: peristiwa dikirim saat Firebase Crashlytics menentukan bahwa aplikasi tidak memiliki simbol debug yang sesuai untuk menandai laporan error yang masuk
    • crashlytics.newAnrIssue: peristiwa dikirim saat aplikasi mengalami error aplikasi tidak merespons (ANR) baru (bukan untuk peristiwa identik berikutnya)
    • crashlytics.newFatalIssue: peristiwa dikirim saat aplikasi mengalami error fatal baru (bukan untuk peristiwa berikutnya yang identik)
    • crashlytics.newNonfatalIssue: peristiwa dikirim saat aplikasi mengalami error non-fatal baru (bukan untuk peristiwa berikutnya yang identik)
    • crashlytics.regression: peristiwa dikirim saat aplikasi mengalami error untuk masalah yang ditandai sebagai ditutup untuk versi aplikasi sebelumnya
    • crashlytics.stabilityDigest: peristiwa dikirim saat ada pemberitahuan tentang masalah trending teratas di Crashlytics
    • crashlytics.velocity: peristiwa dikirim saat satu masalah bertanggung jawab menyebabkan sejumlah besar sesi aplikasi error
    • performance.threshold: peristiwa dikirim saat performa metrik melampaui nilai minimum yang ditetapkan
  11. Jika ingin, Anda dapat memfilter peristiwa untuk ID Aplikasi Firebase tertentu. Klik Tambahkan filter dan tentukan appid.
  12. Pilih Service account yang akan memanggil layanan atau alur kerja Anda.

    Atau, Anda dapat membuat akun layanan baru.

    Ini menentukan email akun layanan Identity and Access Management (IAM) yang terkait dengan pemicu dan yang sebelumnya Anda berikan peran tertentu yang diperlukan oleh Eventarc.

  13. Dalam daftar Tujuan peristiwa, pilih Workflows.
  14. Pilih alur kerja.

    Ini adalah nama alur kerja yang akan menerima peristiwa. Peristiwa untuk eksekusi alur kerja diubah dan diteruskan ke alur kerja sebagai argumen runtime.

    Untuk mengetahui informasi selengkapnya, lihat Membuat pemicu untuk Alur Kerja.

  15. Secara opsional, untuk menambahkan label, Anda dapat mengklik Tambahkan label. Label adalah pasangan nilai kunci yang membantu Anda mengatur resourceGoogle Cloud . Untuk informasi selengkapnya, lihat Apa yang dimaksud dengan label?
  16. Klik Buat.
  17. Setelah pemicu dibuat, filter sumber peristiwa tidak dapat diubah. Sebagai gantinya, buat pemicu baru dan hapus pemicu lama. Untuk informasi selengkapnya, lihat Mengelola pemicu.

gcloud

gcloud eventarc triggers create TRIGGER \
    --location=global \
    --destination-workflow=DESTINATION_WORKFLOW  \
    --destination-workflow-location=DESTINATION_WORKFLOW_LOCATION \
    --event-filters="type=google.firebase.firebasealerts.alerts.v1.published" \
    --event-filters="alerttype=ALERT_TYPE" \
    --event-data-content-type="EVENT_DATA_CONTENT_TYPE" \
    --service-account="MY_SERVICE_ACCOUNT@PROJECT_ID.iam.gserviceaccount.com"

Ganti kode berikut:

  • TRIGGER: ID pemicu atau ID yang memenuhi syarat sepenuhnya.
  • DESTINATION_WORKFLOW: ID alur kerja yang di-deploy yang menerima peristiwa dari pemicu. Alur kerja dapat berada di salah satu lokasi Workflow yang didukung dan tidak perlu berada di lokasi yang sama dengan pemicu. Namun, alur kerja harus berada dalam project yang sama dengan pemicu.
  • DESTINATION_WORKFLOW_LOCATION (opsional): lokasi tempat alur kerja tujuan di-deploy. Jika tidak ditentukan, workflow dianggap berada di lokasi yang sama dengan pemicu.
  • ALERT_TYPE: jenis pemberitahuan Firebase dan dapat berupa salah satu nilai berikut:
    • appDistribution.inAppFeedback: peristiwa dikirim saat penguji mengirimkan masukan dalam aplikasi untuk aplikasi tertentu
    • appDistribution.newTesterIosDevice: peristiwa dikirim saat perangkat penguji iOS baru didaftarkan untuk aplikasi tertentu
    • billing.planAutomatedUpdate: peristiwa dikirim saat paket penagihan untuk project Firebase diperbarui secara otomatis; misalnya, saat paket didowngrade karena masalah pembayaran
    • billing.planUpdate: peristiwa dikirim saat paket penagihan untuk project Firebase diubah oleh pengguna; misalnya, saat akun penagihan dilampirkan ke atau dilepaskan dari project
    • crashlytics.missingSymbolFile: peristiwa dikirim saat Firebase Crashlytics menentukan bahwa aplikasi tidak memiliki simbol debug yang sesuai untuk menandai laporan error yang masuk
    • crashlytics.newAnrIssue: peristiwa dikirim saat aplikasi mengalami error aplikasi tidak merespons (ANR) baru (bukan untuk peristiwa identik berikutnya)
    • crashlytics.newFatalIssue: peristiwa dikirim saat aplikasi mengalami error fatal baru (bukan untuk peristiwa berikutnya yang identik)
    • crashlytics.newNonfatalIssue: peristiwa dikirim saat aplikasi mengalami error non-fatal baru (bukan untuk peristiwa berikutnya yang identik)
    • crashlytics.regression: peristiwa dikirim saat aplikasi mengalami error untuk masalah yang ditandai sebagai ditutup untuk versi aplikasi sebelumnya
    • crashlytics.stabilityDigest: peristiwa dikirim saat ada pemberitahuan tentang masalah trending teratas di Crashlytics
    • crashlytics.velocity: peristiwa dikirim saat satu masalah bertanggung jawab menyebabkan sejumlah besar sesi aplikasi error
    • performance.threshold: peristiwa dikirim saat performa metrik melampaui nilai minimum yang ditetapkan
    Operator untuk ALERT_TYPE harus berupa salah satu dari berikut:
    • Sama; misalnya, --event-filters="alerttype=appDistribution.inAppFeedback"
    • Pola jalur; misalnya, --event-filters-path-pattern="alerttype=appDistribution." atau --event-filters-path-pattern="alerttype=crashlytics.new".

      Untuk mengetahui informasi selengkapnya, lihat Memahami pola jalur.

  • EVENT_DATA_CONTENT_TYPE: (opsional) encoding payload peristiwa. Nilai ini dapat berupa application/json atau application/protobuf. Encoding default-nya adalah application/json.

    Perhatikan bahwa payload peristiwa yang diformat dalam JSON lebih besar daripada yang diformat dalam Protobuf. Hal ini dapat memengaruhi keandalan, bergantung pada tujuan peristiwa dan batas ukuran peristiwa. Untuk mengetahui informasi selengkapnya, lihat Masalah umum.

  • SERVICE_ACCOUNT_NAME: nama akun layanan IAM yang Anda buat dan Anda berikan peran tertentu yang diperlukan oleh Alur Kerja.
  • PROJECT_ID: Google Cloud project ID Anda

Catatan:

  • Flag --location harus global. Untuk informasi selengkapnya, lihat Lokasi Eventarc.
  • Flag ini diperlukan:
    • --event-filters="type=google.firebase.firebasealerts.alerts.v1.published"
    • --event-filters="alerttype=ALERT_TYPE" atau --event-filters-path-pattern="alerttype=ALERT_TYPE"
  • Setelah pemicu dibuat, jenis filter peristiwa tidak dapat diubah. Untuk jenis peristiwa yang berbeda, Anda harus membuat pemicu baru.
  • Atau, Anda dapat memfilter peristiwa untuk ID Aplikasi Firebase tertentu dengan menggunakan flag --event-filters="appid=APP_ID" dan dengan menentukan kecocokan persis.
  • --service-account: Email akun layanan IAM yang akan digunakan pemicu Eventarc Anda untuk memanggil eksekusi alur kerja. Sebaiknya gunakan akun layanan dengan hak istimewa terendah yang diperlukan untuk mengakses resource yang diperlukan. Untuk mempelajari akun layanan lebih lanjut, lihat Membuat dan mengelola akun layanan.
  • Secara default, langganan Pub/Sub yang dibuat untuk Eventarc bertahan terlepas dari aktivitasnya dan tidak akan habis masa berlakunya. Untuk mengubah durasi ketidakaktifan, lihat Properti langganan.

Contoh:

gcloud eventarc triggers create firealerts-workflows-trigger \
    --location=global \
    --destination-workflow=my-workflow \
    --destination-workflow-location=europe-west4 \
    --event-filters="type=google.firebase.firebasealerts.alerts.v1.published" \
    --event-filters="alerttype=crashlytics.velocity" \
    --service-account="${SERVICE_ACCOUNT_NAME}@${PROJECT_ID}.iam.gserviceaccount.com"

Perintah ini membuat pemicu yang disebut firealerts-workflows-trigger untuk peristiwa yang diidentifikasi sebagai google.firebase.firebasealerts.alerts.v1.published, dan untuk jenis pemberitahuan crashlytics.velocity.

Terraform

Anda dapat membuat pemicu untuk alur kerja menggunakan Terraform. Untuk mengetahui detailnya, lihat Memicu alur kerja menggunakan Eventarc dan Terraform.

Mencantumkan pemicu

Anda dapat mengonfirmasi pembuatan pemicu dengan mencantumkan pemicu Eventarc menggunakan Google Cloud CLI atau melalui konsol Google Cloud.

Konsol

  1. Di konsol Google Cloud, buka halaman Pemicu Eventarc.

    Buka Pemicu

    Halaman ini mencantumkan pemicu Anda di semua lokasi, dan menyertakan detail seperti nama, wilayah, penyedia peristiwa, tujuan, dan lainnya.

  2. Untuk memfilter pemicu:

    1. Klik Filter atau kolom Filter triggers.
    2. Di daftar Properti, pilih opsi untuk memfilter pemicu.

    Anda dapat memilih satu properti atau menggunakan operator logika OR untuk menambahkan properti lainnya.

  3. Untuk mengurutkan pemicu, di samping judul kolom yang didukung, klik Urutkan.

gcloud

Jalankan perintah berikut untuk membuat daftar pemicu:

gcloud eventarc triggers list --location=-

Perintah ini mencantumkan pemicu Anda di semua lokasi, dan menyertakan detail seperti nama, jenis, tujuan, dan status.

Langkah berikutnya