Pemecahan masalah umum

Pelajari langkah-langkah pemecahan masalah yang mungkin berguna jika Anda mengalami masalah saat menggunakan Pub/Sub.

Tidak dapat membuat topik

Pastikan Anda memiliki izin yang diperlukan. Untuk membuat topik Pub/Sub, Anda memerlukan peran Identity and Access Management Pub/Sub Editor (roles/pubsub.editor) di project. Jika Anda tidak memiliki peran ini, hubungi administrator. Untuk informasi pemecahan masalah selengkapnya terkait topik, lihat Pemecahan masalah topik dan Pemecahan masalah topik impor.

Tidak dapat membuat langganan

Pastikan Anda telah melakukan hal berikut:

  • Pastikan Anda memiliki izin yang diperlukan. Untuk membuat langganan Pub/Sub, Anda memerlukan peran IAM Pub/Sub Editor (roles/pubsub.editor) di project. Jika Anda tidak memiliki peran ini, hubungi administrator.

  • Menentukan nama untuk langganan.

  • Menentukan nama topik yang ada yang ingin Anda lampirkan langganannya.

  • Jika membuat langganan push, tentukan https:// dalam huruf kecil (bukan http:// atau HTTPS://) sebagai protokol untuk URL penerima Anda di kolom pushEndpoint.

Untuk informasi pemecahan masalah langganan selengkapnya, lihat Memecahkan masalah langganan pull, Memecahkan masalah langganan push, Memecahkan masalah langganan BigQuery, dan Memecahkan masalah langganan Cloud Storage.

403 (Forbidden) error

Jika Anda mendapatkan error ini, lakukan hal berikut:

  • Pastikan Anda telah mengaktifkan Pub/Sub API di konsol Google Cloud.
  • Pastikan akun utama yang membuat permintaan memiliki izin yang diperlukan pada resource Pub/Sub API yang relevan, terutama jika Anda menggunakan Pub/Sub API untuk komunikasi lintas project.

  • Jika Anda menggunakan Dataflow, pastikan {PROJECT_NUMBER}@cloudservices. dan akun Layanan Compute Engine {PROJECT_NUMBER}-compute@ memiliki izin yang diperlukan pada resource Pub/Sub API yang relevan. Untuk mengetahui informasi selengkapnya, lihat Keamanan dan Izin Dataflow.

  • Jika Anda menggunakan App Engine, periksa halaman Izin project untuk melihat apakah Akun Layanan App Engine tercantum sebagai Editor Pub/Sub. Jika belum, tambahkan Akun Layanan App Engine Anda sebagai Editor Pub/Sub. Biasanya, Akun Layanan App Engine memiliki format <project-id>@.

Kode error umum lainnya

Untuk mengetahui daftar kode error umum lainnya yang terkait dengan Pub/Sub API dan deskripsinya, lihat Kode Error.

Menggunakan operasi administratif yang berlebihan

Jika Anda mendapati bahwa Anda menggunakan terlalu banyak kuota untuk operasi administratif, Anda mungkin perlu memfaktorkan ulang kode. Sebagai ilustrasi, pertimbangkan kode pseudo ini. Dalam contoh ini, operasi administratif (GET) digunakan untuk memeriksa keberadaan langganan sebelum mencoba menggunakan resource-nya. GET dan CREATE adalah operasi administrator:

if !GetSubscription my-sub {
  CreateSubscription my-sub
}
Consume from subscription my-sub

Pola yang lebih efisien adalah mencoba menggunakan pesan dari langganan (dengan asumsi bahwa Anda dapat yakin dengan nama langganan). Dalam pendekatan optimis ini, Anda hanya mendapatkan atau membuat langganan jika terjadi error. Perhatikan contoh berikut:

try {
  Consume from subscription my-sub
} catch NotFoundError {
  CreateSubscription my-sub
  Consume from subscription my-sub
}