Halaman ini menjelaskan cara mengonfigurasi kuota untuk API Anda di Cloud Endpoints Framework. Untuk mengetahui ringkasan fungsi yang disediakan oleh kuota, lihat Tentang kuota.
Java
Prosedur berikut mengasumsikan bahwa Anda telah:
- Menulis dan menganotasi kode untuk API Anda.
- Menambahkan pengelolaan API.
- Men-deploy API.
- Mengonfigurasi API Anda untuk menggunakan kunci API. Hal ini diperlukan agar Framework Endpoints dapat mengidentifikasi project Google Cloud yang terkait dengan aplikasi panggilan. Lihat Membagikan API yang dilindungi oleh kunci API untuk mengetahui informasi selengkapnya.
Untuk mengonfigurasi kuota di API Anda:
Dalam file yang berisi anotasi cakupan API, tambahkan hal berikut ke anotasi @Api Anda:
limitDefinitions = { @ApiLimitMetric( name = "YOUR_METRIC_NAME", displayName = "YOUR_METRIC_DISPLAY_NAME", limit = YOUR_QUOTA_LIMIT) }
- 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 kuota. Ganti
YOUR_QUOTA_LIMIT
dengan nilai bilangan bulat. Ini adalah jumlah permintaan yang dapat dibuat aplikasi yang terkait dengan project Google Cloud konsumen dalam satu menit. Misalnya:@Api( name = "echo", version = "v1", namespace = @ApiNamespace( ownerDomain = "echo.example.com", ownerName = "echo.example.com", packagePath = "" ), limitDefinitions = { @ApiLimitMetric( name = "read-requests", displayName = "Read requests", limit = 1000), @ApiLimitMetric( name = "list-requests", displayName = "List requests", limit = 100), @ApiLimitMetric( name = "write-requests", displayName = "Write requests", limit = 50), } )
- Ganti
Untuk setiap metode yang ingin Anda terapkan kuotanya, tambahkan kode berikut ke anotasi
@ApiMethod
:metricCosts = { @ApiMetricCost( name ="YOUR_METRIC_NAME", cost = YOUR_COST) }
- Ganti
YOUR_METRIC_NAME
dengan nama yang Anda tentukan dalam parameterlimitDefinitions
dalam anotasi@Api
. Ganti
YOUR_COST
dengan nilai bilangan bulat yang menentukan biaya untuk setiap permintaan.Contoh:
@ApiMethod(name = "echo", metricCosts = { @ApiMetricCost( name = "read-requests", cost = 1) }) public Message echo(Message message, @Named("n") @Nullable Integer n) { // ...function code here... }
- Ganti
Lihat informasi selengkapnya tentang anotasi yang digunakan dalam kuota di sini:
Python
Prosedur berikut mengasumsikan bahwa Anda telah:
- Menginstal library Endpoints Frameworks versi 2.4.5 atau yang lebih baru.
- Membuat API.
- Membuat server web.
- Menambahkan pengelolaan API.
- Men-deploy API.
- Mengonfigurasi API Anda untuk menggunakan kunci API. Hal ini diperlukan agar Framework Endpoints dapat mengidentifikasi project Google Cloud yang terkait dengan aplikasi panggilan. Lihat Membagikan API yang dilindungi oleh kunci API untuk mengetahui informasi selengkapnya.
Untuk mengonfigurasi kuota di API Anda:
Dalam file yang berisi dekorator API, buat daftar instance
LimitDefinition
, mirip dengan berikut:quota_limits = [ endpoints.LimitDefinition( "YOUR_METRIC_NAME", "YOUR_METRIC_DISPLAY_NAME", limit) ]
- Ganti
YOUR_METRIC_NAME
dengan nama yang mendeskripsikan penghitung permintaan API. - Ganti
YOUR_METRIC_DISPLAY_NAME
dengan teks yang ditampilkan di halaman Endpoints > Services > Quotas untuk mengidentifikasi kuota. Ganti
limit
dengan nilai bilangan bulat. Ini adalah jumlah permintaan yang dapat dilakukan aplikasi yang terkait dengan project Google Cloud konsumen dalam satu menit. Contoh:quota_limits = [ endpoints.LimitDefinition('read-requests', 'Read Requests', 1000), endpoints.LimitDefinition('list-requests', 'List Requests', 100), endpoints.LimitDefinition('write-requests', 'Write Requests', 50), ]
- Ganti
Tambahkan kuota ke dekorator API dengan menetapkannya ke argumen
limit_definitions
. Contoh:@endpoints.api(name='bookstore', version='v1', limit_definitions=quota_limits)
Untuk setiap metode yang ingin Anda terapkan kuotanya, tetapkan kamus ke argumen
METRIC_COSTS
dari dekorator metode. Kunci harus berupa nama yang Anda tentukan dalam argumenlimit_definitions
ke dekorator API, dan nilainya adalah bilangan bulat yang menentukan biaya untuk setiap permintaan. Contoh:@endpoints.method(path='shelves/{shelf}', http_method='GET', metric_costs={'read-requests': 1}) def get_shelf(self, request): # ...function code here...
Lihat informasi selengkapnya tentang dekorator yang digunakan dalam kuota di sini: