Halaman ini menjelaskan cara mengonfigurasi kuota untuk API Anda. Pada tingkat yang tinggi, langkah-langkahnya adalah:
- Tambahkan informasi tentang kuota ke file konfigurasi OpenAPI Anda.
- Deploy file konfigurasi OpenAPI Anda.
- Men-deploy Extensible Service Proxy (ESP).
Untuk mengetahui ringkasan fungsi yang disediakan oleh kuota, lihat Tentang kuota.
Prasyarat
Sebagai titik awal, halaman ini mengasumsikan bahwa Anda telah:
- Cloud Endpoints yang Dikonfigurasi
- Men-deploy konfigurasi Endpoint.
- Men-deploy backend API.
- Mengonfigurasi API Anda untuk menggunakan kunci API. Hal ini diperlukan agar Endpoints dapat mengidentifikasi project Google Cloud yang terkait dengan aplikasi panggilan. Lihat Membagikan API yang dilindungi oleh kunci API untuk mengetahui informasi selengkapnya.
Menambahkan kuota ke dokumen OpenAPI
Prosedur berikut menjelaskan cara menambahkan ekstensi yang diperlukan ke dokumen OpenAPI
Anda untuk menyiapkan kuota. Untuk memudahkan, halaman ini merujuk pada
dokumen OpenAPI sebagai file openapi.yaml
dan hanya menyediakan ekstensi OpenAPI
dalam format YAML.
Anda menambahkan tiga bagian berikut ke file openapi.yaml
:
x-google-management.metrics
: Metrik bernama yang menghitung permintaan ke API Anda. Anda memberikan nama yang menjelaskan penghitung. Namanya dapat berupa kategori, sepertiread-requests
atauwrite-requests
. Atau, jika Anda menentukan kuota untuk metode tertentu, sebaiknya sertakan nama metode, misalnya,echo-api/echo_requests
x-google-management.quota.limits
: Mewakili satu batas yang dapat diberlakukan pada metrik bernama. Di sinilah Anda mengonfigurasi jumlah permintaan yang diizinkan untuk metrik yang telah Anda tentukan. Saat ini, hanya batas per menit, per project yang didukung.x-google-quota.metricCosts
:metricCosts
memetakan metode ke metrik (banyak-ke-banyak). Permintaan ke metode mengalokasikan penghitung untuk setiap metrik yang dipetakan. Saat mengaitkan metode dengan metrik, Anda selalu menentukan biaya untuk permintaan. Anda dapat mengonfigurasi biaya setiap metode secara terpisah. Hal ini memungkinkan metode yang berbeda menggunakan dengan kecepatan yang berbeda dari metrik bernama yang sama. Jika tidak memiliki persyaratan kuota yang kompleks, Anda dapat mengonfigurasi biaya setiap metrik menjadi 1.
Untuk mengonfigurasi kuota di API Anda:
- Buka file
openapi.yaml
project di editor teks. - Jika belum memilikinya, tambahkan ekstensi
x-google-management
di root file (tidak diindentasi atau bertingkat) sebelum bagian yang menentukan jalur. Tambahkan definisi
metrics
yang diindentasi di bagianx-google-management
.x-google-management: metrics: - name: "YOUR_METRIC_NAME" displayName: "YOUR_METRIC-DISPLAY_NAME" valueType: INT64 metricKind: DELTA
- Ganti
YOUR_METRIC_NAME
dengan nama yang menjelaskan penghitung permintaan API. - Ganti
YOUR_METRIC_DISPLAY_NAME
dengan teks yang ditampilkan di halaman Endpoints > Services > Quotas untuk mengidentifikasi metrik. - Kolom
valueType
harusINT64
. - Kolom
metricKind
harusDELTA
.
- Ganti
Tambahkan kolom
quota
di tingkat yang sama denganmetrics
, dan tambahkan kolomlimits
yang disusun bertingkat dalam bagianquota
.quota: limits: - name: "YOUR_LIMIT_NAME" metric: "YOUR_METRIC_NAME" unit: "1/min/{project}" values: STANDARD: VALUE_FOR_THE_LIMIT
- Ganti
YOUR_LIMIT_NAME
dengan nama yang menjelaskan batas. - Ganti
YOUR_METRIC_NAME
denganmetric.name
yang ditentukan sebelumnya. - Kolom
unit
harus berupa"1/min/{project}"
. Ini adalah ID untuk batas per menit per project. - Kolom
values
harus berisiSTANDARD
. - Ganti
VALUE_FOR_THE_LIMIT
dengan nilai bilangan bulat. Ini adalah jumlah permintaan yang dapat dibuat aplikasi yang terkait dengan project Google Cloud konsumen dalam satu menit.
- Ganti
Secara opsional, tentukan metrik dan batas tambahan untuk setiap metrik.
Di bagian
paths
fileopenapi.yaml
, tambahkan ekstensix-google-quota
yang diindentasi di bawah setiap metode yang ingin Anda terapkan kuotanya.x-google-quota: metricCosts: YOUR_METRIC_NAME: YOUR_METRIC_COST
- Ganti
YOUR_METRIC_NAME
denganmetric.name
yang ditentukan sebelumnya. - Ganti
YOUR_METRIC_COST
dengan bilangan bulat. Untuk setiap permintaan, penghitung permintaan untuk metrik akan bertambah dengan jumlah yang Anda tentukan untuk biaya.
- Ganti
Simpan file
openapi.yaml
.
Contoh konfigurasi kuota
Tiga contoh berikut menunjukkan cara mengonfigurasi kuota di API Anda.
Contoh berikut menunjukkan cara mengonfigurasi kolom metric
:
x-google-management: metrics: # Define a metric for read requests. - name: "read-requests" displayName: "Read requests" valueType: INT64 metricKind: DELTA
Contoh berikut menunjukkan cara mengonfigurasi kolom quota
dan limits
dalam bagian quota
:
x-google-management: metrics: # Define a metric for read requests. - name: "read-requests" displayName: "Read requests" valueType: INT64 metricKind: DELTA quota: limits: # Define the limit or the read-requests metric. - name: "read-limit" metric: "read-requests" unit: "1/min/{project}" values: STANDARD: 1000
Contoh berikut menunjukkan cara mengonfigurasi ekstensi x-google-quota
di
bagian paths
:
x-google-management: metrics: # Define a metric for read requests. - name: "read-requests" displayName: "Read requests" valueType: INT64 metricKind: DELTA quota: limits: # Define the limit or the read-requests metric. - name: "read-limit" metric: "read-requests" unit: "1/min/{project}" values: STANDARD: 1000 paths: "/echo": post: description: "Echo back a given message." operationId: "echo" produces: - "application/json" responses: 200: description: "Echo" schema: $ref: "#/definitions/echoMessage" parameters: - description: "Message to echo" in: body name: message required: true schema: $ref: "#/definitions/echoMessage" x-google-quota: metricCosts: "read-requests": 1 security: - api_key: []
Lihat ekstensi OpenAPI
untuk mengetahui contoh dan deskripsi mendetail tentang ekstensi x-google-management
dan
x-google-quota
.
Men-deploy file openapi.yaml
dan ESP
Agar kuota diterapkan, Anda harus:
- Deploy file
openapi.yaml
ke Pengelolaan Layanan, yang akan memperbarui konfigurasi di Endpoint. - Deploy ESP. Langkah-langkah untuk men-deploy ESP bervariasi menurut backend tempat API Anda di-deploy.
Untuk mengetahui langkah-langkah mendetail, lihat Men-deploy backend API.