Batas dan kuota melindungi infrastruktur Google dari proses otomatis yang menggunakan Directory API dengan cara yang tidak semestinya. Permintaan yang berlebihan dari API mungkin disebabkan oleh kesalahan ketik yang tidak berbahaya, atau mungkin disebabkan oleh sistem yang dirancang secara tidak efisien yang melakukan panggilan API yang tidak perlu. Terlepas dari penyebabnya, memblokir traffic dari sumber tertentu setelah mencapai tingkat tertentu diperlukan untuk kesehatan sistem Google Workspace secara keseluruhan. Hal ini memastikan bahwa tindakan satu developer tidak dapat berdampak negatif pada komunitas yang lebih besar.
Jika permintaan API Anda gagal, API akan menampilkan kode status HTTP dan alasan error. Selain itu, isi respons berisi deskripsi mendetail tentang penyebab error.
Daftar berikut menunjukkan kemungkinan kode error, alasan, deskripsi yang sesuai, dan tindakan yang disarankan untuk error yang disebabkan oleh tercapainya batas kuota.
| Kode | Alasan | Deskripsi | Tindakan yang Disarankan |
|---|---|---|---|
| 403 | userRateLimitExceeded | Menunjukkan bahwa batas kapasitas pengguna telah terlampaui. Nilai default yang ditetapkan di Konsol Google Cloud adalah 2.400 kueri per menit per pengguna per project Google Cloud. | Tingkatkan batas per pengguna dari halaman Kuota Admin SDK API di project Google Cloud Anda, atau perlambat kecepatan pengiriman permintaan menggunakan exponential backoff. |
| 403 | quotaExceeded | Menunjukkan bahwa batas permintaan serentak untuk operasi tertentu telah tercapai. | Coba lagi menggunakan back-off eksponensial. Anda perlu memperlambat frekuensi pengiriman permintaan. |
| 429 | rateLimitExceeded | Menunjukkan bahwa batas permintaan serentak untuk operasi tertentu telah tercapai. | Coba lagi menggunakan back-off eksponensial. Anda harus memperlambat kecepatan pengiriman permintaan. Batas ini berlaku per akun Google Workspace, bukan per klien API atau per pengguna. Batas ini tidak dapat ditambah. |
Menerapkan Backoff Eksponensial
Backoff eksponensial adalah proses klien yang secara berkala mencoba kembali permintaan yang gagal selama jangka waktu yang terus bertambah. Backoff eksponensial adalah strategi penanganan error standar untuk aplikasi jaringan. Penggunaan backoff eksponensial akan meningkatkan efisiensi penggunaan bandwidth, mengurangi jumlah permintaan yang diperlukan untuk mendapatkan respons yang berhasil, dan memaksimalkan throughput permintaan dalam lingkungan serentak.
Alur untuk mengimplementasikan backoff eksponensial sederhana adalah sebagai berikut.
- Membuat permintaan ke API
- Menerima respons error yang memiliki kode error yang dapat dicoba lagi
- Tunggu 1 dtk +
random_number_millisecondsdetik - Coba lagi permintaan
- Menerima respons error yang memiliki kode error yang dapat dicoba lagi
- Tunggu 2 dtk +
random_number_millisecondsdetik - Coba lagi permintaan
- Menerima respons error yang memiliki kode error yang dapat dicoba lagi
- Tunggu 4 dtk +
random_number_millisecondsdetik - Coba lagi permintaan
- Menerima respons error yang memiliki kode error yang dapat dicoba lagi
- Tunggu 8 dtk +
random_number_millisecondsdetik - Coba lagi permintaan
- Menerima respons error yang memiliki kode error yang dapat dicoba lagi
- Tunggu 16 dtk +
random_number_millisecondsdetik - Coba lagi permintaan
- Jika Anda masih mengalami error, hentikan dan catat error tersebut.
Pada alur di atas, random_number_milliseconds adalah angka acak milidetik yang kurang dari atau sama dengan 1.000. Hal ini diperlukan untuk menghindari error penguncian tertentu dalam beberapa penerapan serentak.
random_number_milliseconds harus ditentukan ulang setelah setiap periode tunggu.
Catatan: periode tunggu selalu
(2 ^ n) + random_number_milliseconds, dengan
n adalah bilangan bulat yang meningkat secara monotonik, yang awalnya ditetapkan
sebagai 0. n ditambah dengan 1 untuk setiap iterasi (setiap permintaan).
Algoritma disetel untuk dihentikan jika n adalah 5. Batas ini diberlakukan hanya untuk menghentikan klien agar tidak terus mencoba tanpa batas, dan mengakibatkan penundaan total sekitar 32 detik sebelum permintaan dianggap "error yang tidak dapat dipulihkan". Klien API Anda dapat menerapkan jumlah upaya yang lebih tinggi jika diperlukan.
Batas dan Kuota API
| Kategori Batas API | Batas |
|---|---|
| Membuat pengguna | Anda tidak dapat membuat lebih dari 10 pengguna per domain per detik menggunakan Directory API. |
| Menghapus pengguna | Anda dapat menghapus hingga 5 pengguna per domain per detik menggunakan Directory API. Ini adalah batas layanan backend per domain yang tidak dapat disesuaikan di kuota project konsol Google Cloud. Saat mengirim permintaan batch, pastikan total operasi di seluruh batch tetap di bawah 5 kueri per detik (QPS). |
| Menghapus anggota grup | Anda dapat menghapus hingga 30 anggota grup per domain per detik menggunakan Directory API. Ini adalah batas layanan backend per domain yang tidak dapat disesuaikan di kuota project konsol Google Cloud. Saat mengirim permintaan batch, pastikan total operasi di seluruh batch tetap di bawah 30 kueri per detik (QPS). |
| Grup ditambahkan sebagai anggota ke grup lain | Mungkin ada penundaan hingga 10 menit sebelum anggota grup turunan muncul sebagai anggota grup induk. Batas ini dapat berubah bergantung pada kapasitas sistem. |
| Perangkat seluler |
Dengan menggunakan Directory API, Anda dapat melakukan hingga:
|
| Mengganti nama pengguna | Dapat memerlukan waktu hingga 10 menit untuk diterapkan di semua layanan. Sebelum mengganti nama pengguna, sebaiknya logout pengguna dari semua sesi dan layanan browser. Untuk mengetahui detail selengkapnya, lihat Memperbarui pengguna. |
| Membuat/memperbarui Unit Organisasi |
|
| Kategori Kuota API | Kuota |
Perangkat Chrome annotatedLocation, karakter maksimum
|
Jumlah karakter maksimum untuk informasi lokasi perangkat adalah 200. |
Perangkat Chrome notes, karakter maksimum
|
Jumlah karakter maksimum untuk informasi catatan perangkat adalah 500. |
Perangkat Chrome, maksimum user karakter
|
Jumlah maksimum karakter untuk nama pengguna perangkat adalah 100. |
| Alias domain, maksimum | Jumlah maksimum alias domain adalah 20. |
| Grup, deskripsi | Jumlah maksimum karakter dalam deskripsi adalah 4.096. |
| Grup, per akun | Dengan akun G Suite Edisi Gratis versi lama, jumlah grup dibatasi hingga 10. Edisi lainnya tidak memiliki batas jumlah grup. |
| Grup, anggota per grup | Dengan akun G Suite Edisi Gratis Versi Lama, grup dapat berisi hingga 100 anggota. Edisi lain tidak memiliki batasan jumlah anggota yang dapat dimiliki grup. Untuk mengetahui batas keanggotaan grup per pengguna, lihat Memahami kebijakan dan batas Grup |
| String kueri maxResults | API akan menampilkan:
|
| Beberapa domain, jumlah maksimum domain yang diizinkan di akun | 600 (1 domain primer + 599 domain tambahan) |
| Unit Organisasi, jumlah maksimum pengguna yang dipindahkan sekaligus | 20 pengguna dapat dipindahkan sekaligus. Dan alamat email utama pengguna harus sudah ada di akun. |
| Alias pengguna | Jumlah total alias yang diizinkan untuk setiap akun pengguna adalah 30. |
| Alias pengguna, menggunakan alias yang dihapus | Alias pengguna yang dihapus dapat segera digunakan lagi. |
| Jenis Batas Lainnya | Batasan dan Panduan |
|---|---|
| Penagihan dan pembuatan pengguna | Bagi pengguna yang menggunakan paket fleksibel untuk Google Workspace, pembuatan pengguna menggunakan API ini akan berdampak pada biaya, dan akan mengakibatkan tagihan ke akun penagihan pelanggan Anda. Misalnya, jika Anda menggunakan paket fleksibel untuk Google Workspace, membuat 10 pengguna akan mengakibatkan tagihan untuk 10 lisensi Google Workspace diposting ke akun Anda, yang dihitung secara prorata sejak pembuatan selesai. Jika menggunakan paket tahunan, Anda harus berkomitmen untuk membayar sejumlah lisensi di awal, dan Anda hanya dapat membuat pengguna sebanyak komitmen Anda. Untuk mengetahui informasi selengkapnya tentang paket penagihan dan akun penagihan Anda, lihat pusat bantuan administrasi. |
| Nama Depan dan Belakang | Nama depan dan belakang memiliki maksimum 40 karakter. Nama tersebut mendukung karakter Unicode/UTF-8, dan dapat berisi spasi, huruf (a-z), angka (0-9), tanda hubung (-), garis miring (/), dan titik (.). Untuk mengetahui informasi selengkapnya tentang aturan penggunaan karakter, lihat pusat bantuan administrasi. |
| Grup, menghapus | Menghapus grup tidak akan menghapus akun pengguna anggota grup. |
| Grup dan anggota grup, perubahan alamat email | Dalam versi API ini, alamat email grup dapat diubah sebelum layanan Google Workspace diaktifkan. Gunakan konsol Google Admin untuk mengubah alamat email anggota grup. Setelah diubah, API akan otomatis mencerminkan perubahan alamat email. |
| Grup, setelan | Setelan akses, opsi berbagi, pemantauan, dan arsip diskusi Grup dikelola menggunakan konsol Google Admin. Untuk mengetahui informasi selengkapnya tentang setelan grup, lihat pusat bantuan administrasi. |
| Grup, mengirim pesan | Untuk mencegah spam dan penyalahgunaan email, Google membatasi jumlah pesan yang dapat Anda kirim sekaligus kepada penerima eksternal. Jika Anda mengirim pesan ke grup, setiap anggota eksternal dihitung sebagai satu penerima. Untuk mengetahui informasi selengkapnya, lihat Batas pengiriman email dan Mencegah email ke pengguna Gmail diblokir atau dikirim ke spam . |
| Grup, mengirim pesan NDR | Anda tidak dapat mengirim atau meneruskan laporan tidak terkirim (NDR), yang juga disebut "pesan email tidak terkirim", ke grup. |
| Grup yang dibuat oleh pengguna, batasan | Untuk mengetahui batas grup yang dibuat pengguna, lihat pusat bantuan administrasi |
| Unit Organisasi, mengaktifkan/menonaktifkan layanan | Gunakan konsol Google Admin untuk mengelola pengaktifan dan penonaktifan layanan untuk unit organisasi. |
| Sandi | Dapat berisi kombinasi karakter apa pun. Diperlukan minimal 8 karakter. Panjang maksimumnya adalah 100 karakter. |
| Foto | Dalam versi API ini, foto adalah foto profil Google terbaru pengguna. |
| Nama pengguna | Nama pengguna dapat berisi huruf (a-z), angka (0-9), tanda hubung (-), garis bawah (_), dan Google Workspace mengenali titik (.). Hal ini tidak sama dengan Gmail. Nama pengguna tidak boleh berisi tanda sama dengan (=), tanda kurung sudut (<,>), atau lebih dari satu titik (.) dalam satu baris. Untuk mengetahui informasi selengkapnya, lihat pusat bantuan administrasi. |
| Nama pengguna, mengganti nama | Google Hangouts akan menghapus semua undangan chat yang diingat setelah diganti namanya. Pengguna harus meminta izin untuk melakukan chat dengan teman lagi. Nama pengguna lama dipertahankan sebagai alias email untuk memastikan pengiriman email berkelanjutan jika ada setelan penerusan email dan tidak akan tersedia sebagai nama pengguna baru. Untuk mengetahui detail penting tentang dampak penggantian nama pengguna, lihat pusat bantuan administrasi. Gunakan operasi Menghapus alias pengguna untuk menghapus alias email setelah mengganti nama. |
| Pengguna di beberapa domain | Akun Google Workspace dapat menyertakan domain Anda. Di akun beberapa domain, pengguna di satu domain dapat berbagi layanan dengan pengguna di domain akun lain. Beberapa komponen domain adalah:
|
| Peringatan, anggota grup | GROUP_CANNOT_CONTAIN_CYCLE – API tidak mengizinkan siklus dalam keanggotaan grup. Misalnya, jika grup1 adalah anggota grup2, grup2 tidak dapat menjadi anggota grup1. |