Mengonfigurasi kuota

Halaman ini menjelaskan cara mengonfigurasi kuota untuk API Anda. Secara umum, langkah-langkahnya adalah:

  1. Tambahkan informasi tentang kuota ke file konfigurasi gRPC API Anda.
  2. Deploy file konfigurasi gRPC API Anda.
  3. 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:

Menambahkan kuota ke file konfigurasi gRPC API Anda

Prosedur berikut menjelaskan penambahan setelan yang diperlukan ke file konfigurasi gRPC API untuk menyiapkan kuota. Agar lebih mudah, halaman ini merujuk ke file konfigurasi gRPC API sebagai file api_config.yaml.

Anda menambahkan tiga bagian berikut ke file api_config.yaml:

  • metrics: Metrik bernama yang menghitung permintaan ke API Anda. Berikan nama yang menjelaskan penghitung. Nama dapat berupa kategori, seperti read-requests atau write-requests. Atau, jika Anda menentukan kuota untuk metode tertentu, Anda dapat menyertakan nama metode, misalnya,echo-api/echo_requests.

  • quota.limits: Menunjukkan satu batas yang dapat diterapkan pada metrik yang diberi nama. Di sini, Anda mengonfigurasi jumlah permintaan yang diizinkan untuk metrik yang telah ditentukan. Saat ini, hanya batas per menit per project yang didukung.

  • quota.metric_rules: metric_rule memetakan metode ke metrik (many-to-many). Permintaan ke metode mengalokasikan penghitung untuk setiap metrik yang dipetakan. Saat mengaitkan metode dengan metrik, Anda akan selalu menentukan biaya untuk permintaan tersebut. Anda dapat mengonfigurasi biaya setiap metode secara terpisah. Hal ini memungkinkan berbagai metode untuk memakainya dengan kecepatan yang berbeda dari metrik bernama yang sama. Jika tidak memiliki persyaratan kuota yang kompleks, Anda dapat mengonfigurasi biaya setiap metrik ke 1.

Untuk mengonfigurasi kuota di API:

  1. Buka file api_config.yaml project Anda di editor teks.
  2. Tambahkan kolom metrics di bagian atas file (tidak diindentasi atau bertingkat), setelah kolom apis.`

    metrics:
      - name: "YOUR_METRIC_NAME"
        display_name: "YOUR_METRIC_DISPLAY_NAME"
            value_type: INT64
        metric_kind: DELTA`
    
    • 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 metrik.
    • Kolom value_type harus INT64.
    • Kolom metric_kind harus DELTA.
  3. Tambahkan kolom quota di tingkat yang sama dengan metrics, dan tambahkan kolom limits yang berada di dalam bagian quota.

    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.
    • Mengganti YOUR_METRIC_NAME dengan metric.name yang ditentukan sebelumnya.
    • Kolom unit harus "1/min/{project}". Ini adalah ID untuk batas per menit per project.
    • Kolom values harus berisi STANDARD.
    • Ganti VALUE_FOR_THE_LIMIT dengan nilai bilangan bulat. Ini adalah jumlah permintaan yang dapat dibuat oleh aplikasi yang terkait dengan project Google Cloud konsumen dalam satu menit.
  4. (Opsional) Tentukan metrik dan batas tambahan untuk setiap metrik.

  5. Tambahkan baris metric_rules yang diindentasi di bawah quota, setelah bagian limits. Dalam bagian metric_rules, kaitkan metrik yang telah ditentukan sebelumnya dengan metode, seperti berikut:

    metric_rules:
      - metric_costs:
          YOUR_METRIC_NAME: YOUR_METRIC_COST
        selector: [METHODS]
    
    • Mengganti YOUR_METRIC_NAME dengan metric.name yang ditentukan sebelumnya.
    • Ganti YOUR_METRIC_COST dengan bilangan bulat. Untuk setiap permintaan, penghitung permintaan untuk metrik bertambah dengan angka yang Anda tentukan untuk biaya.
    • Untuk kolom selector, Anda dapat menentukan salah satu hal berikut:

      • Untuk mengaitkan semua metode di semua API dengan metric_cost, gunakan selector: "*"
      • Untuk mengaitkan semua metode dalam API dengan metric_cost, gunakan selector: YOUR_API_NAME.*
      • Untuk mengaitkan metode tertentu dalam API dengan metric_cost, gunakan selector: YOUR_API_NAME.YOUR_METHOD_NAME
  6. Simpan file api_config.yaml.

Contoh konfigurasi kuota

Tiga contoh berikut menunjukkan cara mengonfigurasi kuota di API.

Contoh berikut menunjukkan cara mengonfigurasi kolom metric:

metrics:
  # Define a metric for read requests.
  - name: "read-requests"
    display_name: "Read requests"
    value_type: INT64
    metric_kind: DELTA`

Contoh berikut menunjukkan cara mengonfigurasi kolom quota dan limits dalam bagian quota:

metrics:
  # Define a metric for read requests.
  - name: "read-requests"
    display_name: "Read requests"
    value_type: INT64
    metric_kind: 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 baris metrics setelah bagian limits:

  metrics:
    # Define a metric for read requests.
    - name: "read-requests"
      display_name: "Read requests"
      value_type: INT64
      metric_kind: DELTA
  quota:
    limits:
      # Define the limit or the read-requests metric.
      - name: "read-limit"
        metric: "read-requests"
        unit: "1/min/{project}"
        values:
          STANDARD: 1000
    metric_rules:
      - metric_costs:
          "read-requests": 1
        selector: *

Men-deploy file api_config.yaml dan ESP

Agar kuota dapat diterapkan, Anda harus:

  1. Deploy file api_config.yaml ke Pengelolaan Layanan, yang akan mengubah konfigurasi di Endpoint. Untuk langkah-langkah mendetail, lihat Men-deploy konfigurasi Endpoint.
  2. Deploy ESP. Untuk mengetahui langkah-langkah mendetail, lihat Men-deploy backend API.