Menetapkan project kuota

Halaman ini menjelaskan cara menetapkan project kuota untuk API berbasis klien. Untuk mengetahui informasi tentang project kuota, cara menetapkan API kuota, dan cara ditentukan project kuota, lihat Tentang project kuota.

Saat Anda membuat permintaan ke API berbasis klien, permintaan akan gagal jika project kuota tidak dapat diidentifikasi.

Project kuota dapat ditetapkan dengan beberapa cara, dan project akan diverifikasi dengan memeriksa opsi berikut. Urutan yang tercantum adalah urutan prioritasnya.

  • Project kuota yang ditetapkan di lingkungan atau permintaan.
  • Jika Anda menggunakan kunci API untuk memberikan kredensial bagi permintaan, project yang terkait dengan kunci API akan digunakan sebagai project kuota.
  • Jika Anda menggunakan Google Cloud CLI untuk mendapatkan token akses, dan telah melakukan autentikasi ke gcloud CLI dengan kredensial pengguna, project bersama gcloud CLI terkadang digunakan sebagai project kuota. Tidak semua API berbasis klien kembali ke proyek bersama.
  • Jika akun utama untuk panggilan API adalah akun layanan, termasuk dengan peniruan identitas, project yang terkait dengan akun layanan tersebut akan digunakan sebagai project kuota.
  • Jika akun utama untuk API adalah pengguna federasi identitas tenaga kerja, project pengguna kumpulan tenaga kerja digunakan sebagai project kuota.

Jika tidak ada satu pun pemeriksaan di atas yang menghasilkan project kuota, permintaan akan gagal.

Ada beberapa cara untuk menetapkan project kuota. Jika project kuota ditentukan oleh lebih dari satu metode, prioritas berikut akan diterapkan:

  1. Secara terprogram
  2. Variabel lingkungan
  3. Kredensial yang digunakan untuk autentikasi permintaan

Menetapkan project kuota secara terprogram

Anda dapat secara eksplisit menetapkan project kuota di aplikasi Anda. Metode ini akan mengganti semua definisi lainnya. Akun utama yang digunakan untuk autentikasi permintaan harus memiliki izin yang diperlukan pada project kuota yang ditentukan.

Cara Anda menetapkan project kuota secara terprogram bergantung pada apakah Anda menggunakan library klien, gcloud CLI, atau permintaan REST.

Library klien

Anda dapat menetapkan nilai untuk project kuota menggunakan opsi klien saat membuat klien. Metode ini sangat cocok jika Anda ingin mengontrol nilai project kuota dari aplikasi, terlepas dari lingkungan tempat project tersebut dijalankan.

Untuk informasi selengkapnya tentang mengimplementasikan opsi klien, lihat dokumentasi library klien Anda.

gcloud CLI

Anda dapat menetapkan project kuota untuk semua perintah gcloud CLI dengan menggunakan properti billing/quota_project dalam konfigurasi gcloud CLI. Anda juga dapat menetapkan project kuota untuk perintah tertentu menggunakan flag --billing-project, yang lebih diutamakan daripada properti konfigurasi.

Untuk informasi selengkapnya tentang konfigurasi CLI gcloud, lihat halaman referensi konfigurasi gcloud. Untuk mengetahui informasi selengkapnya tentang flag --billing-project, lihat referensi flag global.

Permintaan REST

Anda dapat menentukan project kuota dalam permintaan REST menggunakan header x-goog-user-project. Akun utama yang membuat permintaan harus memiliki izin yang diperlukan pada project kuota.

Untuk informasi selengkapnya dan kode contoh, lihat Menetapkan project kuota dengan permintaan REST.

Menetapkan project kuota menggunakan variabel lingkungan

Library klien untuk beberapa bahasa mendukung penetapan project kuota menggunakan variabel lingkungan. Pendekatan ini dapat berguna jika Anda ingin menetapkan project kuota secara berbeda dalam masing-masing shell, atau untuk mengganti project kuota yang terkait dengan kredensial tersebut. Akun utama untuk permintaan apa pun harus memiliki izin yang diperlukan pada project kuota yang ditentukan oleh variabel lingkungan.

Variabel lingkungan bergantung pada bahasa:

Language Variabel lingkungan
C++

GOOGLE_CLOUD_CPP_USER_PROJECT

C#

GOOGLE_CLOUD_QUOTA_PROJECT

Go

GOOGLE_CLOUD_QUOTA_PROJECT

Java

GOOGLE_CLOUD_QUOTA_PROJECT

Node.js

GOOGLE_CLOUD_QUOTA_PROJECT

Python

GOOGLE_CLOUD_QUOTA_PROJECT

PHP

GOOGLE_CLOUD_QUOTA_PROJECT

Ruby Tidak tersedia

Menetapkan project kuota menggunakan kredensial autentikasi

Jika project kuota tidak ditentukan, library autentikasi akan mencoba menentukannya dari kredensial yang digunakan untuk permintaan tersebut. Proses ini bergantung pada jenis kredensial yang digunakan untuk autentikasi permintaan:

  • Akun layanan – Project yang terkait dengan akun layanan digunakan sebagai project kuota.
  • Kredensial pengguna – Untuk lingkungan pengembangan lokal, Kredensial Default Aplikasi menemukan kredensial pengguna Anda dari file ADC lokal. File tersebut juga dapat menentukan project kuota. Jika Anda telah menetapkan project di konfigurasi Google Cloud CLI, dan memiliki izin yang diperlukan di project tersebut, project kuota juga akan ditetapkan secara default saat Anda membuat file ADC lokal. Anda juga dapat menetapkan project kuota ADC menggunakan perintah auth application-default set-quota-project.
  • Kunci API – Saat Anda menggunakan kunci API untuk memberikan kredensial bagi permintaan, project yang terkait dengan kunci API akan digunakan sebagai project kuota.

Izin yang diperlukan untuk menetapkan dan menggunakan project kuota

Guna mendapatkan izin yang diperlukan untuk menetapkan project sebagai project kuota, atau menggunakan project kuota tersebut dalam permintaan, minta administrator untuk memberi Anda Peran IAM Service Usage Consumer (roles/serviceusage.serviceUsageConsumer) di project. Untuk informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.

Peran yang telah ditetapkan ini berisi izin serviceusage.services.use, yang diperlukan untuk menetapkan project sebagai project kuota, atau menggunakan project kuota tersebut dalam permintaan.

Anda mungkin juga bisa mendapatkan izin ini dengan peran khusus atau peran bawaan lainnya.

Jika menggunakan project yang dibuat sebagai project kuota, Anda memiliki izin yang diperlukan.

Untuk mengetahui informasi selengkapnya tentang izin, lihat Izin kuota.

Menetapkan pengguna kuota

Beberapa API juga membatasi jumlah permintaan per pengguna, yang berbeda dengan kuota per project yang dijelaskan di bagian sebelumnya pada halaman ini.

Secara default, sistem menggunakan akun utama yang diautentikasi. Jika tidak ada akun utama yang diautentikasi, sistem akan menggunakan alamat IP klien.

Jika perlu mengganti pengguna kuota, Anda dapat menetapkan parameter quotaUser melalui Parameter sistem Cloud API. Jika Anda menentukan quotaUser atau X-Goog-Quota-User, kunci API yang valid dengan pembatasan alamat IP harus digunakan untuk mengidentifikasi project kuota. Jika tidak, parameter quotaUser akan diabaikan.

Untuk mempelajari lebih lanjut parameter sistem Cloud API beserta definisinya, lihat tabel definisi parameter sistem.

Langkah selanjutnya