Añadir la política SpikeArrest a la API

Esta página se aplica a Apigee y Apigee Hybrid.

Consulta la documentación de Apigee Edge.

Qué vas a aprender

En este tutorial, aprenderás a hacer lo siguiente:

  • Añade una política que afecte a la solicitud y a la respuesta.
  • Consulta los efectos de la política.

Qué necesitas

Añadir la política SpikeArrest

En este tutorial, añadirás y configurarás la política SpikeArrest para proteger el servicio de destino frente a picos de tráfico repentinos que pueden deberse a un aumento del uso, a clientes con errores o a ataques maliciosos. Cuando el número de solicitudes supera el límite de frecuencia, la API devuelve un error HTTP 429.

Nuevo editor de proxies

Para añadir la política SpikeArrest a un proxy de API, sigue estos pasos:

  1. Si usas la interfaz de usuario de Apigee en la consola de Cloud, selecciona Desarrollo de proxy > Proxies de API.

    Si usas la interfaz de usuario de Apigee clásica, selecciona Desarrollar > Proxies de API y, en el panel Proxies, selecciona el entorno del proxy.

    Si has seguido el tutorial de introducción, puedes añadirlo al proxy de API que has creado en Crear un proxy de API.

  2. Haz clic en la pestaña Desarrollar.
  3. En el panel de la izquierda, haga clic en el botón + de la fila Políticas.
  4. En el cuadro de diálogo Crear política, haz clic en el campo Seleccionar tipo de política y desplázate hacia abajo hasta Gestión del tráfico y selecciona SpikeArrest.

  5. También puedes cambiar el Nombre y el Nombre visible de la política. De forma predeterminada, Apigee proporciona un prefijo corto para el nombre de la política. En este caso, SA-. Puedes añadir una secuencia de palabras descriptivas, separadas por guiones, después del prefijo. Consulta las nomenclaturas.

    Cuadro de diálogo para crear una política.

    Cuando hayas terminado, haz clic en Crear para crear la política.

Ahora que ha creado la política de retención de picos, puede añadirla a un paso de PreFlow.

  1. En el panel de la izquierda, selecciona Proxy Endpoints > default > PreFlow:

    Puntos de conexión de destino para la selección de PreFlow en el explorador de proxies.

    Nota: Es posible que tengas que ampliar el editor visual del panel de la derecha para ver todos los elementos. Para hacerlo, haz clic en la barra que separa el editor visual del editor de texto y arrástrala un poco hacia abajo.

  2. En el panel Respuesta, en la parte inferior derecha del editor visual, haz clic en el botón + situado junto a PreFlow:

    En el panel Respuesta, haz clic en el botón + situado junto a PreFlow.

  3. En el cuadro de diálogo Añadir política, selecciona la política Retención de picos.
  4. Haga clic en Añadir para adjuntar la política.

    La política Retención de picos se muestra ahora en el panel Respuesta:

    Política de retención de picos mostrada en el panel Response (Respuesta).

Ahora que has adjuntado la política de retención de picos a PreFlow, puedes probar a cambiar el código de la política:

  1. En el panel Respuesta, selecciona SA-.

    Política de retención de picos mostrada en la pestaña Políticas.

  2. El editor de texto muestra el código XML del proxy, incluido el paso de la política Spike Arrest en el elemento Response de PreFlow.
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <SpikeArrest continueOnError="false" enabled="true" name="SA-">
        <DisplayName>SA-</DisplayName>
        <Properties/>
        <Identifier ref="request.header.some-header-name"/>
        <MessageWeight ref="request.header.weight"/>
        <Rate>30ps</Rate>
    </SpikeArrest>
  3. En el XML de la política, cambia el valor del elemento <Rate> a 1pm (lo que se traduce en aproximadamente dos solicitudes permitidas cada 60 segundos en la nube).

    .

    Puede especificar la frecuencia como un valor entero por minuto (pm) o por segundo (ps). Este límite es muy bajo y solo se usa en este tutorial para demostrar la política. Normalmente, se establece un límite mucho más alto.

    Observa que el valor Rate del Inspector de propiedades también cambia a 1pm. También puede cambiar el valor de Tasa en el Inspector de propiedades y se reflejará en la vista XML.

  4. Haz clic en Guardar para guardar la revisión actual con los cambios.

Editor de proxies clásico

Para añadir la política SpikeArrest a un proxy de API, sigue estos pasos:

  1. Inicia sesión en la interfaz de Apigee.
  2. Seleccione Desarrollar > Proxies de API en la barra de navegación de la izquierda.
  3. Selecciona el proxy de API al que quieras añadir la política SpikeArrest.

    Si has seguido el tutorial de introducción, puedes añadirlo al proxy de API que has creado en Crear un proxy de API.

  4. En el editor del nuevo proxy de API, haz clic en la pestaña Desarrollar:

    La pestaña Desarrollar se encuentra entre las pestañas Vista general y Seguimiento.

    El editor de proxies de API te permite ver la estructura de tu proxy de API y configurar su flujo. El editor muestra una representación visual del flujo de mensajes de solicitud y respuesta de tu proxy, así como una visualización editable del XML subyacente que define el proxy.

  5. En el panel de navegación de la izquierda, haga clic en PreFlow en Proxy Endpoints > default. En otros tutoriales se explicará el concepto de flujos.
  6. Haz clic en el botón + Paso de la parte superior, que corresponde a Request PreFlow. Se muestra una lista categorizada de todas las políticas que puedes crear.

    Haga clic en Paso en Request PreFlow.

  7. Selecciona SpikeArrest en la categoría Gestión del tráfico. Aparecerá el cuadro de diálogo Nueva política:

    Crea una política de SpikeArrest.

  8. Deja los nombres predeterminados y haz clic en Añadir. La nueva política se adjunta al flujo PreFlow de una solicitud.
  9. En el navegador, comprueba que PreFlow, en Proxy Endpoints > default, sigue seleccionado y observa lo siguiente en el editor de proxy de API:
    • La nueva política SpikeArrest-1 se añade a Policies (Políticas) en el navegador de la parte izquierda del editor de proxy de API.
    • El icono SpikeArrest-1 se añade a la vista Diseño, en la parte superior central del editor de proxy de API, que es una representación visual de los flujos de mensajes de tu proxy.
    • El XML de la política se muestra en la vista Código, en la parte inferior central del editor de proxies de API.

    Consulta el PreFlow con la política de SpikeArrest.

  10. En el navegador, selecciona SpikeArrest-1 en Políticas y observa lo siguiente en el editor de proxies de API:
    • Los detalles de la política se muestran en la vista Diseño, en la parte superior central del editor de proxies de API.
    • El XML de la política se muestra en la vista Código, en la parte inferior central del editor de proxies de API.
    • Los valores del elemento y del atributo XML de la política se muestran en el Inspector de propiedades, situado en la parte derecha del editor de proxies de API.

    El panel Inspector de propiedades muestra los valores de la política SpikeArrest-1.

  11. En el XML de la política, cambia el valor del elemento <Rate> a 1pm (lo que se traduce en aproximadamente dos solicitudes permitidas cada 60 segundos en la nube).

    .

    Puede especificar la frecuencia como un valor entero por minuto (pm) o por segundo (ps). Este límite es muy bajo y solo se usa en este tutorial para demostrar la política. Normalmente, se establece un límite mucho más alto.

    Observa que el valor Rate del Inspector de propiedades también cambia a 1pm. También puede cambiar el valor de Tasa en el Inspector de propiedades y se reflejará en la vista XML.

  12. Haz clic en Guardar para guardar la revisión actual con los cambios.
  13. Implementa los cambios con el botón Implementar en:.
  14. Llama a la API mediante curl con la URL de tu dominio:

    curl "http://YOUR_DOMAIN/myproxy"

    donde:

    Consulta más información en Probar el proxy de API.

    Asegúrate de que la solicitud se realiza correctamente y de que ves la misma respuesta XML que antes. También puedes introducir solo la URL en un navegador web.

    A continuación, prueba el ajuste Rate de diferentes formas:

    • Ejecuta el comando curl (o actualiza la ventana del navegador) dos o tres veces más en un minuto y verás que aparece el siguiente mensaje porque has superado el límite de frecuencia de la política:
      {
      "fault": {
        "faultstring":"Spike arrest violation. Allowed rate : 1pm",
        "detail": {
          "errorcode":"policies.ratelimit.SpikeArrestViolation"}
        }
      }

      Si intentas hacer más llamadas en un minuto, seguirás recibiendo el mensaje de error.

    • Edita la política para definir el límite de <Rate> en 15pm (lo que se traduce en aproximadamente dos llamadas permitidas cada cuatro segundos en la nube). A continuación, guarda y despliega el proxy de API.
    • Ejecuta el comando curl o actualiza el navegador repetidamente (curl es más rápido). Ten en cuenta que, si haces una o dos llamadas en intervalos de cuatro segundos, las llamadas se completarán correctamente. Si haces las llamadas rápidamente (más de dos en cuatro segundos), deberías recibir el error de fallo. Sin embargo, después de cada intervalo de 4 segundos, puedes seguir haciendo llamadas, en lugar de que se te bloquee durante un minuto entero (con el ajuste 1pm).