Mengonfigurasi kuota

Halaman ini menjelaskan cara mengonfigurasi kuota untuk API Anda. Pada tingkat yang tinggi, langkah-langkahnya adalah:

  1. Tambahkan informasi tentang kuota ke file konfigurasi OpenAPI Anda.
  2. Deploy file konfigurasi OpenAPI 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 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, seperti read-requests atau write-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:

  1. Buka file openapi.yaml project di editor teks.
  2. Jika belum memilikinya, tambahkan ekstensi x-google-management di root file (tidak diindentasi atau bertingkat) sebelum bagian yang menentukan jalur.
  3. Tambahkan definisi metrics yang diindentasi di bagian x-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 harus INT64.
    • Kolom metricKind harus DELTA.
  4. Tambahkan kolom quota di tingkat yang sama dengan metrics, dan tambahkan kolom limits yang disusun bertingkat 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.
    • Ganti YOUR_METRIC_NAME dengan metric.name yang ditentukan sebelumnya.
    • Kolom unit harus berupa "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 aplikasi yang terkait dengan project Google Cloud konsumen dalam satu menit.
  5. Secara opsional, tentukan metrik dan batas tambahan untuk setiap metrik.

  6. Di bagian paths file openapi.yaml, tambahkan ekstensi x-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 dengan metric.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.
  7. 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:

  1. Deploy file openapi.yaml ke Pengelolaan Layanan, yang akan memperbarui konfigurasi di Endpoint.
  2. 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.