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.
- 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 Endpoints.
- 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 yang melakukan 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
untuk menyiapkan kuota. Agar lebih sederhana, halaman ini menyebut dokumen OpenAPI sebagai file openapi.yaml dan menyediakan ekstensi OpenAPI hanya 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. Nama dapat berupa kategori, sepertiread-requestsatauwrite-requests. Atau, jika Anda menentukan kuota untuk metode tertentu, Anda dapat menyertakan nama metode, misalnya,echo-api/echo_requestsx-google-management.quota.limits: Merepresentasikan satu batas yang dapat diterapkan 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: Metode petametricCostske metrik (banyak-ke-banyak). Permintaan ke suatu 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 untuk menggunakan metrik bernama yang sama dengan kecepatan yang berbeda. Jika tidak memiliki persyaratan kuota yang kompleks, Anda dapat mengonfigurasi biaya setiap metrik menjadi 1.
Untuk mengonfigurasi kuota di API Anda:
- Buka file
openapi.yamlproject Anda di editor teks. - Jika Anda belum memilikinya, tambahkan ekstensi
x-google-managementdi root file (tidak diindentasi atau bertingkat) sebelum bagian yang menentukan jalur. Tambahkan definisi
metricsyang diindentasi di bawahx-google-management.x-google-management: metrics: - name: "YOUR_METRIC_NAME" displayName: "YOUR_METRIC-DISPLAY_NAME" valueType: INT64 metricKind: DELTA- Ganti
YOUR_METRIC_NAMEdengan nama yang mendeskripsikan penghitung permintaan API. - Ganti
YOUR_METRIC_DISPLAY_NAMEdengan teks yang ditampilkan di halaman Endpoints > Services > Quotas untuk mengidentifikasi metrik. - Kolom
valueTypeharus berupaINT64. - Kolom
metricKindharus berupaDELTA.
- Ganti
Tambahkan kolom
quotadi tingkat yang sama denganmetrics, dan tambahkan kolomlimitsyang 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_NAMEdengan nama yang mendeskripsikan batas. - Ganti
YOUR_METRIC_NAMEdenganmetric.nameyang ditentukan sebelumnya. - Kolom
unitharus berupa"1/min/{project}". Ini adalah ID untuk batas per menit per project. - Kolom
valuesharus berisiSTANDARD. - Ganti
VALUE_FOR_THE_LIMITdengan nilai bilangan bulat. Ini adalah jumlah permintaan yang dapat dibuat oleh aplikasi yang terkait dengan project konsumen Google Cloud dalam satu menit.
- Ganti
Secara opsional, tentukan metrik dan batas tambahan untuk setiap metrik.
Di bagian
pathsfileopenapi.yaml, tambahkan ekstensix-google-quotayang diindentasi di bawah setiap metode yang ingin Anda terapkan kuotanya.x-google-quota: metricCosts: YOUR_METRIC_NAME: YOUR_METRIC_COST- Ganti
YOUR_METRIC_NAMEdenganmetric.nameyang ditentukan sebelumnya. - Ganti
YOUR_METRIC_COSTdengan bilangan bulat. Untuk setiap permintaan, penghitung permintaan untuk metrik akan bertambah sesuai 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: DELTAContoh 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: 1000Contoh 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 contoh lainnya dan deskripsi mendetail tentang ekstensi x-google-management dan
x-google-quota.
Men-deploy file openapi.yaml dan ESP
Agar kuota berlaku, Anda harus:
- Deploy file
openapi.yamlke Pengelolaan Layanan, yang memperbarui konfigurasi di Endpoint. - Deploy ESP. Langkah-langkah untuk men-deploy ESP berbeda-beda bergantung pada backend tempat API Anda di-deploy.
Untuk mengetahui langkah-langkah mendetail, lihat Men-deploy backend API.