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 sudah ada yang ingin Anda lampirkan langganannya.
Jika membuat langganan push, tentukan
https://
dalam huruf kecil (bukanhttp://
atauHTTPS://
) sebagai protokol untuk URL penerima Anda di kolompushEndpoint
.
Untuk informasi pemecahan masalah selengkapnya tentang langganan, 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.gserviceaccount.com
dan akun Layanan Compute Engine{PROJECT_NUMBER}-compute@developer.gserviceaccount.com
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>@appspot.gserviceaccount.com
.
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
}