Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Доступны в регионе
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • AI Studio
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Партнёрская программа
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»
Yandex API Gateway
  • Начало работы
    • Взаимосвязь ресурсов сервиса
    • Сетевое взаимодействие
      • Обзор
      • Жадные параметры
      • Обобщенный HTTP-метод
      • Авторизация с помощью функции Cloud Functions
      • Авторизация с помощью JWT
      • Поддержка протокола WebSocket
      • Валидация данных
      • CORS
      • Параметризация спецификации
      • Канареечный релиз
      • Ограничение скорости обработки запросов
      • Замена кода ответа
      • Преобразование тела ответа и запроса
    • Квоты и лимиты
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • История изменений
  • Вопросы и ответы
  • Обучающие курсы

В этой статье:

  • RateLimitObject
  • Расширение x-yc-apigateway-rate-limits
  • Расширение x-yc-apigateway-rate-limit
  • Примеры спецификаций
  • Пример спецификации с ограничением количества запросов в секунду на весь API-шлюз
  • Пример спецификации с переопределением глобального лимита на уровне пути
  • Пример спецификации с ограничением для конкретной операции
  • Пример спецификации с настройкой лимита в секции components
  1. Концепции
  2. Расширения спецификации
  3. Ограничение скорости обработки запросов

Ограничение скорости обработки запросов

Статья создана
Yandex Cloud
Улучшена
Jhon-Mosk
Обновлена 3 июня 2025 г.
  • RateLimitObject
  • Расширение x-yc-apigateway-rate-limits
  • Расширение x-yc-apigateway-rate-limit
  • Примеры спецификаций
    • Пример спецификации с ограничением количества запросов в секунду на весь API-шлюз
    • Пример спецификации с переопределением глобального лимита на уровне пути
    • Пример спецификации с ограничением для конкретной операции
    • Пример спецификации с настройкой лимита в секции components

Важно

Данное расширение устарело и больше не поддерживается. Чтобы ограничить скорость обработки запросов, используйте интеграцию с Yandex Smart Web Security.

Расширения x-yc-apigateway-rate-limits и x-yc-apigateway-rate-limit позволяют ограничить скорость обработки запросов. Лимиты можно настроить на API-шлюз или конкретные пути и/или HTTP-методы. Если количество запросов в заданный период времени превышает значение, которое указано в спецификации, новые запросы не обрабатываются и не тарифицируются, а в ответ возвращается статус-код 429 Too Many Requests.

API Gateway не гарантирует, что всегда точно будет ограничивать скорость обработки запросов до указанной в спецификации.

Функциональность дополнительно не тарифицируется. Тарифицируются только те запросы, которые были обработаны API-шлюзом.

RateLimitObjectRateLimitObject

RateLimitObject — набор параметров спецификации OpenAPI, который позволяет ограничить скорость обработки запросов.

Структура объекта RateLimitObject:

  allRequests:
    rps: <максимальное_количество_запросов_в_секунду>
    rpm: <максимальное_количество_запросов_в_минуту>

Необходимо определить rps или rpm, но не оба значения вместе.

Расширение x-yc-apigateway-rate-limitsРасширение x-yc-apigateway-rate-limits

Расширение x-yc-apigateway-rate-limits позволяет описывать ограничения скорости обработки запросов в секции components. Можно ссылаться на ограничения, которые определены таким образом, с помощью параметра $ref в расширении x-yc-apigateway-rate-limit и подключать их к разным путям, операциям (HTTP-методам) или ко всему API-шлюзу (см. параметр rateLimit расширения x-yc-apigateway).

Расширение x-yc-apigateway-rate-limitРасширение x-yc-apigateway-rate-limit

Расширение x-yc-apigateway-rate-limit позволяет ограничить скорость обработки запросов для всех операций пути или для конкретной операции. Имеет тип RateLimitObject. На данный момент не поддерживаются ограничения для путей с жадными параметрами.

Примеры спецификацийПримеры спецификаций

Пример спецификации с ограничением количества запросов в секунду на весь API-шлюзПример спецификации с ограничением количества запросов в секунду на весь API-шлюз

В данном примере скорость ограничена на все запросы, которые приходят в API-шлюз. Лимит определяется на верхнем уровне через параметр rateLimit расширения x-yc-apigateway.

openapi: "3.0.0"
info:
  version: 1.0.0
  title: Petstore API

x-yc-apigateway:
  rateLimit:
    allRequests:
      rps: 10

paths:
  /pets/{petId}:
    get:
      operationId: petById
      parameters:
        - in: path
          name: petId
          schema:
            type: integer
          required: true
          description: Pet identifier
      responses:
        '200':
          description: Pet
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Pet"
      x-yc-apigateway-integration:
        type: cloud_functions
        function_id: b095c95icn**********

components:
  schemas:
    Pet:
      type: object
      required:
        - id
        - name
      properties:
        id:
          type: integer
        name:
          type: string

Пример спецификации с переопределением глобального лимита на уровне путиПример спецификации с переопределением глобального лимита на уровне пути

В данном примере общее ограничение скорости запросов, которое определено на верхнем уровне для всего API-шлюза, переопределяется на уровне конкретного пути.

openapi: "3.0.0"
info:
  version: 1.0.0
  title: Petstore API

x-yc-apigateway:
  rateLimit:
    allRequests:
      rps: 10

paths:
  /pets/{petId}:
    x-yc-apigateway-rate-limit:
      allRequests:
        rpm: 100
    get:
      operationId: petById
      parameters:
        - in: path
          name: petId
          schema:
            type: integer
          required: true
          description: Pet identifier
      responses:
        '200':
          description: Pet
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Pet"
      x-yc-apigateway-integration:
        type: cloud_functions
        function_id: b095c95icn**********

components:
  schemas:
    Pet:
      type: object
      required:
        - id
        - name
      properties:
        id:
          type: integer
        name:
          type: string

Пример спецификации с ограничением для конкретной операцииПример спецификации с ограничением для конкретной операции

openapi: "3.0.0"
info:
  version: 1.0.0
  title: Petstore API

paths:
  /pets/{petId}:
    get:
      x-yc-apigateway-rate-limit:
        allRequests:
          rpm: 10
      operationId: petById
      parameters:
        - in: path
          name: petId
          schema:
            type: integer
          required: true
          description: Pet identifier
      responses:
        '200':
          description: Pet
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Pet"
      x-yc-apigateway-integration:
        type: cloud_functions
        function_id: b095c95icn**********

components:
  schemas:
    Pet:
      type: object
      required:
        - id
        - name
      properties:
        id:
          type: integer
        name:
          type: string

Пример спецификации с настройкой лимита в секции Пример спецификации с настройкой лимита в секции components

openapi: "3.0.0"
info:
  version: 1.0.0
  title: Petstore API

paths:
  /pets/{petId}:
    x-yc-apigateway-rate-limit:
      $ref: "#/components/x-yc-apigateway-rate-limits/get-rate-limit"
    get:
      operationId: petById
      parameters:
        - in: path
          name: petId
          schema:
            type: integer
          required: true
          description: Pet identifier
      responses:
        '200':
          description: Pet
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Pet"
      x-yc-apigateway-integration:
        type: cloud_functions
        function_id: b095c95icn**********

components:
  x-yc-apigateway-rate-limits:
    get-rate-limit:
      allRequests:
        rpm: 10

  schemas:
    Pet:
      type: object
      required:
        - id
        - name
      properties:
        id:
          type: integer
        name:
          type: string

Была ли статья полезна?

Предыдущая
Канареечный релиз
Следующая
Замена кода ответа
Проект Яндекса
© 2025 ТОО «Облачные Сервисы Казахстан»