Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Centro de ayuda/ API Gateway/ Guía del usuario/ API Opening/ Plug-ins/ Solicitud de plug-in de limitación
Actualización más reciente 2023-11-30 GMT+08:00

Solicitud de plug-in de limitación

El plug-in de limitación de solicitudes limita el número de veces que se puede llamar a una API dentro de un período de tiempo específico. Soporta la limitación basada en parámetros, básica y excluida.

Solo las puertas de enlace dedicadas creadas a partir del 4 de diciembre de 2021 admiten el plug-in de limitación de solicitudes. Para utilizar este plug-in para puertas de enlace dedicadas creadas antes del 4 de diciembre de 2021, póngase en contacto con el servicio de atención al cliente.

  • Limitación básica

    Limita las solicitudes por API, usuario, aplicación o dirección IP de origen. Esta función es equivalente a una política de limitación de solicitudes pero es incompatible con ella.

  • Limitación basada en parámetros

    Limitar las solicitudes basadas en encabezados, parámetros de ruta, métodos, cadenas de consulta o variables del sistema.

  • Limitación excluida

    Limitar las solicitudes basadas en aplicaciones o inquilinos específicos.

Restricciones

  • Una política de limitación de solicitudes no es válida si un plug-in de limitación de solicitudes está enlazado a la misma API que la política.
  • Puede definir un máximo de 100 reglas de parámetros.
  • El contenido del plug-in no puede exceder los caracteres 65,535.

Parámetros de configuración

Tabla 1 Parámetros de configuración

Parámetro

Descripción

Policy Type

  • API-specific

    Supervise y controle las solicitudes de una única API.

  • API-sharing

    Supervise y controle el total de solicitudes de todas las API vinculadas con el plug-in.

Period

Durante cuánto tiempo desea limitar el número de solicitudes de API.

  • Max. API Requests: Limite el número máximo de veces que se puede llamar a una API dentro de un período de tiempo específico.
  • Max. User Requests: Limite el número máximo de veces que un usuario puede llamar a una API dentro de un período de tiempo específico.
  • Max. App Requests: Limite el número máximo de veces que una aplicación puede llamar a una API dentro de un período de tiempo específico.
  • Max. IP Address Requests: Limita el número máximo de veces que una dirección IP puede llamar a una API dentro de un período de tiempo específico.

Max. API Requests

El número máximo de veces que se puede llamar a cada API enlazada dentro del período especificado.

Este parámetro debe usarse junto con Period.

Max. User Requests

El número máximo de veces que un usuario puede llamar a cada API enlazada dentro del período especificado. Para las API con autenticación IAM, la limitación se basa en un ID de proyecto; para las API con autenticación de aplicación, la limitación se basa en un ID de cuenta. Para obtener más información sobre los ID de cuenta y los ID de proyecto, consulte la descripción sobre Excluded Tenants en esta tabla.

  • El valor de este parámetro no puede exceder el de Max. API Requests.
  • Este parámetro debe usarse junto con Period.
  • Si hay muchos usuarios bajo su cuenta que acceden a una API, los límites de limitación de solicitudes de la API se aplicarán a todos estos usuarios.

Max. App Requests

Número máximo de veces que una aplicación puede llamar a cada API enlazada dentro del período especificado. Este límite solo se aplica a las API a las que se accede a través de la autenticación de aplicaciones.

  • El valor de este parámetro no puede exceder el de Max. User Requests.
  • Este parámetro debe usarse junto con Period.

Max. IP Address Requests

El número máximo de veces que cada API enlazada puede ser llamada por una dirección IP dentro del período especificado.

  • El valor de este parámetro no puede exceder el de Max. API Requests.
  • Este parámetro debe usarse junto con Period.

Parameter-based Throttling

Habilitar o deshabilitar la limitación basada en parámetros. Después de activar esta función, las solicitudes de API se reducen en función de los parámetros especificados.

Parameters

Defina los parámetros para las reglas de limitación.

  • Parameter Location: la ubicación de un parámetro que se va a utilizar en una regla.
    • path: URI de solicitud de API. Este parámetro está configurado de forma predeterminada.
    • method: método de solicitud de API. Este parámetro está configurado de forma predeterminada.
    • Header: el valor del primer encabezado HTTP con el nombre del parámetro que ha establecido.
    • Query: el valor de la primera cadena de consulta con el nombre del parámetro establecido.
    • System: un parámetro de sistema.
  • Parameter Name: el nombre de un parámetro para que coincida con el valor especificado en una regla.

Rules

Definir reglas de limitación. Una regla consiste en condiciones, un límite de limitación de solicitudes de API y un período.

Para agregar más reglas, haga clic en Add Rule.

  • Condiciones

    Haga clic en para establecer expresiones de condición. Para establecer una expresión, seleccione un parámetro y un operador e introduzca un valor.

    • =: igual a
    • !=: no es igual a
    • pattern: expresión regular
    • enum: valores enumerados. Separar varios valores con comas (,).
  • Max. API Requests

    Número máximo de veces que se puede llamar a una API dentro de un período de tiempo específico.

  • Period

    Un período de tiempo que se aplicará con el límite de limitación que establezca. Si no se especifica, se utilizará el período establecido en el área Police Details.

Por ejemplo, configure el estrangulamiento basado en parámetros de la siguiente manera: agregue el parámetro Host y especifique la ubicación como Header; agregue la condición Host = www.abc.com, y establezca el límite de estrangulamiento en 10 y el período en 60s. Para las API cuyo parámetro Host en el encabezado de solicitud es igual a www.abc.com, no se pueden llamar de nuevo una vez que se les llama 10 veces en 60s.

Excluded Throttling

Habilitar o deshabilitar la limitación excluida. Después de habilitar esta función, los límites de limitación para los inquilinos y las aplicaciones excluidos anulan el valor Max. User Requests y Max. App Requests en la área Basic Throttling.

Excluded Tenants

Tenant ID: ID de cuenta o ID de proyecto.

Threshold: el número máximo de veces que un inquilino específico puede acceder a una API dentro del período especificado. El umbral no puede exceder el valor de Max. . API Requests en el área Basic Throttling.

Excluded Apps

Seleccione una aplicación y especifica el número máximo de veces que la aplicación puede acceder a una API dentro del período especificado. El umbral no puede exceder el valor de Max. . API Requests en el área Basic Throttling.

Script de ejemplo

{
  "scope": "basic",
  "default_interval": 60,
  "default_time_unit": "second",
  "api_limit": 100,
  "app_limit": 50,
  "user_limit": 50,
  "ip_limit": 20,
  "specials": [
    {
      "type": "app",
      "policies": [
        {
          "key": "2e421d76dc6c4c75941511ccf654e368",
          "limit": 10
        }
      ]
    },
    {
      "type": "user",
      "policies": [
        {
          "key": "878f1b87f71c40a7a15db0998f358bb9",
          "limit": 10
        }
      ]
    }
  ],
  "parameters": [
    {
      "type": "path",
      "name": "reqPath",
      "value": "reqPath"
    },
    {
      "type": "method",
      "name": "method",
      "value": "method"
    },
    {
      "type": "header",
      "name": "Host",
      "value": "Host"
    }
  ],
  "rules": [
    {
      "match_regex": "[\"Host\",\"==\",\"www.abc.com\"]",
      "rule_name": "rule-jlce",
      "time_unit": "second",
      "interval": 0,
      "limit": 5
    }
  ]
}