Anda sedang melihat dokumentasi Apigee dan Apigee hybrid.
Tidak ada padanan
Dokumentasi Apigee Edge untuk topik ini.
Gejala
Mengirim log API Apigee ke Cloud Logging adalah kasus penggunaan umum. Hal ini umumnya dilakukan melalui kebijakan MessageLogging atau Kebijakan Info Layanan. Dalam kedua kasus tersebut, Apigee menggunakan Cloud Logging API untuk menulis log.
Dalam beberapa kasus, Anda mungkin tidak melihat log Apigee API di Cloud Logging.
Pesan error
Tidak ada pesan error yang ditampilkan.
Kemungkinan Penyebab
Penyebab | Deskripsi | Petunjuk pemecahan masalah berlaku untuk |
---|---|---|
Cloud Logging API tidak diaktifkan | Pastikan Anda telah mengaktifkan Cloud Logging API di Google Cloud project organisasi Apigee Anda. | Apigee dan Apigee Hybrid |
Akun Layanan Proxy yang Salah Dikonfigurasi | Akun layanan yang digunakan pada waktu deployment (Apigee) atau dalam runtime (Apigee hybrid) mungkin telah dihapus/salah dikonfigurasi. | Apigee dan Apigee Hybrid |
Nama project salah dalam konfigurasi kebijakan | Nama project dalam konfigurasi kebijakan tidak sama dengan satu yang terkait dengan organisasi Apigee. | Apigee dan Apigee Hybrid |
Peran/izin untuk akun layanan runtime tidak ada | Untuk Apigee Hybrid, pastikan layanan runtime akun Anda memiliki peran Service Account Token Creator. Ini adalah wajib menggunakan otentikasi Google. | Apigee hybrid |
Ukuran entri log melebihi batas Cloud Logging yang diizinkan | Cloud Logging memiliki batas ukuran entri sebesar 256 KB yang tidak dapat diubah. | Apigee dan Apigee Hybrid |
Kehabisan kuota permintaan tulis per menit untuk Cloud Logging API | Pastikan Anda tidak melebihi nilai kuota permintaan tulis per menit untuk Cloud Logging API di project Google Cloud Anda. | Apigee dan Apigee Hybrid |
Penyebab: Cloud Logging API tidak diaktifkan
Diagnosis
Pastikan Cloud Logging API sudah aktif. Lihat Buat daftar layanan yang diaktifkan untuk mendapatkan petunjuk cara membuat daftar API yang diaktifkan dan layanan lainnya di Konsol Google Cloud.
Resolusi
Jika Cloud Logging API belum diaktifkan, aktifkan API tersebut menggunakan langkah dalam Mengaktifkan layanan. Pengaktifan API memerlukan waktu beberapa menit.
Jika Anda tidak dapat menyelesaikan masalah saat log tidak terlihat di Cloud Logging karena Cloud Logging API tidak diaktifkan, lihat Harus mengumpulkan informasi diagnostik.
Penyebab: Akun layanan proxy salah dikonfigurasi
Diagnosis
Apigee
- Temukan nama akun layanan.
- Menggunakan UI Apigee:
- Klik Develop > API Proxy lalu klik nama proxy. Misalnya, TurboBooks.
-
Di bagian Deployment, nama Akun Layanan adalah
ditampilkan.
-
Berikan panggilan API Apigee berikut:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://apigee.googleapis.com/v1/organizations/ORG_NAME/environments/ENV_NAME/apis/PROXY_NAME/revisions/REVISION_NUMBER/deployments"
Ganti kode berikut:
- ORG_NAME: Nama organisasi Anda. Contoh,
apigee-example-org
. - ENV_NAME: Nama lingkungan. Contoh,
myenv
. - PROXY_NAME: Nama proxy. Contoh,
TurboBooks
. - REVISION_NUMBER: Nomor revisi. Contoh,
4
.
Contoh:
curl -H "Authorization: Bearer $(gcloud auth print-access-token)" "https://apigee.googleapis.com/v1/organizations/apigee-example-org/environments/myenv/apis/TurboBooks/revisions/4/deployments"
Sesuatu yang mirip dengan hal berikut ini akan ditampilkan:
{ "environment": "myenv", "apiProxy": "TurboBooks", "revision": "4", "deployStartTime": "1687408163394", "state": "READY", "instances": [ { "instance": "apiginstance", "deployedRevisions": [ { "revision": "4", "percentage": 100 } . . . . "serviceAccount": "projects/-/serviceAccounts/envsa-79@apigee-example-org." }
Dengan
serviceAccount
adalah akun layanan yang terkait dengan proxy API. - ORG_NAME: Nama organisasi Anda. Contoh,
- Menggunakan UI Apigee:
- Verifikasi hal berikut untuk akun layanan proxy ini:
-
Akun layanan ini harus berada di project Google Cloud yang sama dengan
yang digunakan untuk membuat organisasi Apigee. Misalnya,
apigee-example-org.
-
Pengguna yang men-deploy proxy memiliki
Izin
iam.serviceAccounts.actAs
di layanan ini menggunakan akun layanan.- Untuk daftar peran, lihat Peran Akun Layanan.
- Untuk petunjuk tentang cara melihat peran pengguna tertentu, lihat Lihat akses saat ini.
-
Akun layanan proxy memiliki izin yang diperlukan untuk memanggil
layanan Cloud Logging.
- Untuk daftar peran, lihat Mencatat peran.
- Untuk petunjuk cara melihat akun layanan proxy izin, lihat Lihat akses saat ini.
-
Akun layanan ini harus berada di project Google Cloud yang sama dengan
yang digunakan untuk membuat organisasi Apigee. Misalnya,
Apigee hybrid
Untuk Apigee Hybrid, selain langkah-langkah yang tercantum dalam
Apigee, buka file overrides.yaml
Anda
dan memastikan ada akun layanan yang ditentukan di setiap lingkungan
yang memerlukan autentikasi Google.
Contoh:
envs:
- name: "ENVIRONMENT_NAME"
serviceAccountPaths:
runtime: "KEY_FILE_PATH"
Ganti kode berikut:
-
ENVIRONMENT_NAME: Nama lingkungan. Sebagai contoh,
myenv
. - KEY_FILE_PATH: Jalur ke kunci akun layanan runtime . Anda biasanya sudah membuat akun layanan di Membuat akun layanan selama penginstalan.
Resolusi
- Jika akun layanan tidak berada di project Google Cloud yang sama dengan yang Anda digunakan untuk membuat organisasi Apigee, maka akun layanan perlu dibuat di project Google Cloud yang sama dan digunakan. Hal ini juga disebutkan dalam Menggunakan autentikasi Google.
-
Jika pengguna yang menerapkan {i>proxy<i} tidak memiliki
iam.serviceAccounts.actAs
di akun layanan ini, lihat Berikan satu peran. - Jika akun layanan proxy tidak memiliki izin yang diperlukan untuk memanggil layanan Cloud Logging, lihat Berikan satu peran.
Jika langkah-langkah dalam dokumen ini tidak menyelesaikan masalah ketika proxy akun layanan tidak dikonfigurasi dengan benar untuk Apigee dan Apigee Hybrid, lihat Harus mengumpulkan informasi diagnostik.
Penyebab: Nama project dalam kebijakan salah konfigurasi
Diagnosis
Jika Anda menggunakan Kebijakan MessageLogging untuk mengirim log ke Cloud Logging:
- Di Apigee UI, klik Develop > Proxy API > Nama proxy API > Kembangkan.
-
Di panel Code, cari
<CloudLogging>
. -
Pastikan nilai
<LogName>
adalah project yang benar nama:<CloudLogging> <LogName>projects/PROJECT_ID/logs/LOG_ID</LogName> </CloudLogging>
Ganti kode berikut:
-
PROJECT_ID: ID project Google Cloud. Sebagai contoh,
apigee-example-org
. - LOG_ID: ID log Cloud Logging. Sebagai contoh,
apigee-logs
.
-
PROJECT_ID: ID project Google Cloud. Sebagai contoh,
Resolusi
Jika nilai dalam elemen <LogName>
tidak memiliki
nilai yang benar, perbarui ke nilai yang benar.
Jika langkah-langkah dalam dokumen ini tidak menyelesaikan masalah, lihat Harus mengumpulkan informasi diagnostik.
Penyebab: Peran/izin untuk akun layanan runtime tidak ada
Diagnosis
Pastikan runtime dapat meniru akun layanan proxy.
Jalankan perintah berikut perintah gcloud untuk memverifikasi apakah akun layanan runtime memiliki Peran iam.serviceAccountTokenCreator pada akun layanan proxy:
gcloud iam service-accounts get-iam-policy PROXY_SA_NAME@PROJECT_ID.
Ganti kode berikut:
- PROXY_SA_NAME: Nama akun layanan proxy.
Contoh,
envsa-79
. - PROJECT_ID: ID project Google Cloud. Sebagai contoh,
apigee-example-org
.
Sesuatu yang mirip dengan hal berikut ini akan ditampilkan:
- members: - serviceAccount:RUNTIME_SA_NAME@PROJECT_ID. role: roles/iam.serviceAccountTokenCreator
Ganti kode berikut:
RUNTIME_SA_NAME: ID untuk akun layanan runtime.
Contoh, apigee-runtime
.
Contoh:
gcloud iam service-accounts get-iam-policy envsa-79@apigee-example-org. bindings: - members: - user:222larabrown@gmail.com role: roles/iam.serviceAccountAdmin - members: - serviceAccount:apigee-runtime@apigee-example-org. role: roles/iam.serviceAccountTokenCreator - members: - user:222larabrown@gmail.com role: roles/iam.serviceAccountUser etag: BwX-shcrL3o= version: 1
Jika Anda tidak melihat peran iam.serviceAccountTokenCreator
dan anggota yang diharapkan di {i>output<i}, lalu ikuti langkah-langkah di
Resolusi untuk memberikan peran yang benar.
Resolusi
Beri akun layanan runtime
Peran iam.serviceAccountTokenCreator
di layanan proxy
dengan menjalankan perintah
Perintah gcloud:
gcloud iam service-accounts add-iam-policy-binding \ PROXY_SA_NAME@PROJECT_ID. \ --member=serviceAccount:RUNTIME_SA_NAME@PROJECT_ID. \ --role=roles/iam.serviceAccountTokenCreator
Ganti kode berikut:
-
PROXY_SA_NAME: Nama akun layanan proxy. Sebagai
contoh,
envsa-79
. -
PROJECT_ID: ID project Google Cloud. Misalnya,
apigee-example-org
. -
RUNTIME_SA_NAME: ID untuk akun layanan runtime. Sebagai
contoh,
apigee-runtime
.
Jika langkah-langkah dalam dokumen ini tidak menyelesaikan masalah, lihat Harus mengumpulkan informasi diagnostik.
Penyebab: Ukuran entri log melebihi batas pencatatan log yang diizinkan
Diagnosis
Jika Anda tidak melihat beberapa log yang muncul di Cloud Logging setelah memastikan bahwa penyebab lain yang dijelaskan dalam dokumen ini tidak bermasalah, maka ada kemungkinan bahwa ukuran beberapa entri log yang dikirim dari Apigee melebihi 256 KB yang merupakan batas pasti untuk entri ukuran log di Cloud Logging. Lihat Logging batas penggunaan untuk informasi selengkapnya.
Resolusi
Ini adalah batas yang tidak dapat dikonfigurasi di Cloud Logging dan satu-satunya solusi yang diketahui saat ini adalah mempertahankan ukuran entri log yang dikirim dari Apigee di bawah 256 KB. Jika Anda mencatat log payload yang berpotensi melebihi batas batasan ini, tidak mencatat payload ini, atau memahami bahwa beberapa transaksi tidak akan dicatat setelah batas tercapai.
Jika langkah-langkah dalam dokumen ini tidak menyelesaikan masalah, lihat Harus mengumpulkan informasi diagnostik.
Penyebab: Kehabisan kuota permintaan tulis per menit untuk Cloud Logging API
Diagnosis
Terkadang pelanggan mengalami bahwa mereka dapat melihat permintaan di sesi debug, sementara pada saat yang sama, permintaan tersebut tidak login ke penjelajah log, meskipun ada di log Load Balancer.
Hilangnya pesan yang diamati dapat disebabkan oleh kehabisan kuota dalam project. Cloud Logging API menerapkan batas kapasitas sebesar 120.000 permintaan tulis per menit. Jika kuota ini terlampaui, pesan akan berkurang.Untuk informasi lebih lanjut, lihat Melihat dan mengelola kuota.
Kuota ini dapat ditingkatkan di dalam Google Cloud Console dan dapat dilakukan oleh pelanggan sendiri dengan mengikuti dokumentasi peningkatan kuota.
Resolusi
Ikuti prosedur di bawah untuk meningkatkan kuota;
- Di halaman Quotas , gunakan kotak centang untuk memilih Cloud Logging API, lalu klik Edit kuota.
Jika menerima pesan error
Edit is not allowed for this quota
, Anda dapat menghubungi Google Cloud Customer Care untuk meminta perubahan kuota. Perhatikan juga bahwa penagihan harus diaktifkan pada project Google Cloud untuk mengklik kotak centang. - Di panel Perubahan kuota, pilih layanan untuk meluaskan tampilan, lalu isi kolom deskripsi Batas baru dan Permintaan. Klik Next.
- Lengkapi formulir di panel Detail kontak, lalu Klik Kirim permintaan.
Untuk informasi selengkapnya, lihat dokumentasi ini untuk Kuota dan batas.
Harus mengumpulkan informasi diagnostik
Jika masalah berlanjut bahkan setelah mengikuti petunjuk di atas, kumpulkan informasi diagnostik berikut, lalu hubungi Google Cloud Customer Care:
- Organisasi Apigee.
- Lingkungan dan proxy API melihat masalah.
- Sesi debug yang didownload (ini akan memberikan semua info di atas).
- Nama kebijakan spesifik di proxy API yang mengirimkan log ke Cloud Logging.
- Untuk Apigee Hybrid: File
overrides.yaml
.