Halaman ini menjelaskan cara mengonfigurasi kuota untuk API Anda di Framework Cloud Endpoints. Untuk mengetahui ringkasan fungsi yang disediakan oleh kuota, lihat Tentang kuota.
Java
Prosedur berikut mengasumsikan bahwa Anda sudah:
- Menulis dan menganotasi kode untuk API Anda.
- Menambahkan pengelolaan API.
- Men-deploy API Anda.
- Mengonfigurasi API Anda untuk menggunakan kunci API. Hal ini diperlukan agar Framework Endpoint 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:
Dalam file yang berisi anotasi cakupan API, tambahkan berikut ini 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 Endpoint > Layanan > Quotas untuk mengidentifikasi kuota. Ganti
YOUR_QUOTA_LIMIT
dengan nilai bilangan bulat. Ini adalah jumlah permintaan yang dapat diajukan 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 tempat Anda ingin menerapkan kuota, 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
Baca informasi selengkapnya mengenai anotasi yang digunakan dalam kuota:
Python
Prosedur berikut mengasumsikan bahwa Anda sudah:
- Menginstal library Endpoints Frameworks versi 2.4.5 atau yang lebih baru.
- Membuat API Anda.
- Membuat server web.
- Menambahkan pengelolaan API.
- Men-deploy API Anda.
- Mengonfigurasi API Anda untuk menggunakan kunci API. Hal ini diperlukan agar Framework Endpoint 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:
Dalam file yang berisi dekorator API, buat daftar instance
LimitDefinition
, mirip dengan berikut ini:quota_limits = [ endpoints.LimitDefinition( "YOUR_METRIC_NAME", "YOUR_METRIC_DISPLAY_NAME", limit) ]
- Ganti
YOUR_METRIC_NAME
dengan nama yang menjelaskan penghitung permintaan API. - Ganti
YOUR_METRIC_DISPLAY_NAME
dengan teks yang ditampilkan di halaman Endpoint > Layanan > Quotas untuk mengidentifikasi kuota. Ganti
limit
dengan nilai bilangan bulat. Ini adalah jumlah permintaan yang dapat dibuat oleh 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 Anda ke dekorator API dengan menetapkannya ke argumen
limit_definitions
. Contoh:@endpoints.api(name='bookstore', version='v1', limit_definitions=quota_limits)
Untuk setiap metode tempat Anda ingin menerapkan kuota, 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: