Agrega la política de Spike Arrest a tu API

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

Consulta la documentación de Apigee Edge.

Qué aprenderás

En este instructivo, aprenderás a realizar lo siguiente:

  • Agrega una política que afecte la solicitud y respuesta
  • Consulta los efectos de la política.

Qué necesitará

Agrega la política de Spike Arrest

En este instructivo, agregarás y configurarás la política de SpikeArrest para proteger el servicio de destino contra aumentos repentinos de tráfico que pueden deberse a un aumento del uso, de los clientes defectuosos o de los ataques maliciosos. Cuando la cantidad de solicitudes supera el límite de frecuencia, la API muestra un error HTTP 429.

Editor de proxies nuevo

Agrega la política de Spike Arrest a un proxi de API:

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

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

    Si seguiste el instructivo Comenzar, puedes agregarlo al proxy de API que creaste en Crea un proxy de API.

  2. Haz clic en la pestaña Desarrollar:
  3. En el panel de la izquierda, haz clic en el botón + en la fila Políticas.
  4. En laCrear política haz clic en elSelecciona un tipo de política y desplázate hacia abajo hastaAdministración del tráfico y seleccioneProtección contra aumentos de tráfico.

  5. De manera opcional, 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 agregar una secuencia de palabras descriptivas, separadas por guiones, después del prefijo. Consulta Convenciones de nombres.

    Crear cuadro de diálogo de la política.

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

Ahora que creaste la política de Spike Arrest, puedes agregarla a un paso en el PreFlow.

  1. Selecciona Proxy Endpoints > default > PreFlow en el panel izquierdo:

    Extremos de destino para PreFlow seleccionados en el Explorador de proxy.

    Nota: Es posible que debas expandir el editor visual en el panel de la derecha para ver todos los elementos. Para ello, haz clic y arrastra el divisor entre el editor visual y el editor de texto un poco hacia abajo.

  2. Haz clic en el botón + junto a PreFlow en el panel Respuesta en la esquina inferior derecha del editor visual:

    Haz clic en el botón + junto al PreFlow en el panel Respuesta.

  3. En el cuadro de diálogo Agregar paso de la política, selecciona la política Spike Arrest.
  4. Haz clic en Agregar para adjuntar la política.

    La política de Spike Arrest se muestra en el panel Respuesta:

    Política de Spike Arrest que se muestra en el panel de respuesta.

Ahora que adjuntaste la política de Spike Arrest al PreFlow, puedes intentar cambiar el código para la política:

  1. En el panel Respuesta, selecciona SA-.

    Política de Spike Arrest que se muestra 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 de Spike Arrest en el elemento Respuesta del flujo previo.
    <?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 (que se traduce en aproximadamente dos solicitudes permitidas cada 60 segundos en la nube).

    Puedes especificar la tasa como un valor de número entero por minuto (pm) o por segundo (ps). Este es un límite muy bajo y solo se usa para este instructivo a fin de demostrar la política. Por lo general, se establece en un límite mucho más alto.

    Ten en cuenta que el valor de Rate en el inspector de propiedades también cambia a 1pm. Como alternativa, puedes cambiar el valor de Rate en el Inspector de propiedades y se reflejará en la vista XML.

  4. Haga clic en Save para guardar la revisión actual con sus cambios.

Editor de proxies clásico

Agrega la política de Spike Arrest a un proxi de API:

  1. Accede a la IU de Apigee.
  2. Selecciona Desarrollar > Proxies de API en la barra de navegación izquierda.
  3. Selecciona el proxy de API al que deseas agregar la política de Spike Arrest.

    Si seguiste el instructivo Comenzar, puedes agregarlo al proxy de API que creaste en Crea 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 Descripción general y Seguimiento.

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

  5. En el panel del navegador de la izquierda, haz clic en PreFlow en Extremos del proxy > predeterminado. (Otros instructivos abordarán el concepto de flujos).
  6. Haz clic en el botón superior + Paso (+ Step), que corresponde a solicitud FlowFlow. Esto mostrará una lista categorizada de todas las políticas que puedes crear.

    Haz clic en Paso en la solicitud FlowFlow.

  7. Selecciona Spike Arrest en la categoría Administración del tráfico. Se mostrará el cuadro de diálogo de la nueva política:

    Crea una política de Spike Arrest.

  8. Deja los nombres predeterminados y haz clic en Agregar. La nueva política se adjunta al flujo de PreFlow de una solicitud.
  9. En el navegador, asegúrate de que la opción PreFlow en Extremos del proxy > predeterminado aún esté seleccionada y ten en cuenta lo siguiente en el editor del proxy de API:
    • La política de Spike Arrest-1 nueva se agrega en Políticas en el navegador del lado izquierdo del editor de proxy de API.
    • El ícono de Spike Arrest-1 se agrega a la Vista del diseñador en el centro superior 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 de código en el centro inferior del editor de proxy de API.

    Vista de PreFlow con la política de Spike Arrest.

  10. En el navegador, selecciona Spike Arrest-1 en Políticas y observa lo siguiente en el editor de proxy de API:
    • Los detalles de la política se muestran en la Vista del diseñador en el centro superior del editor de proxy de API.
    • El XML de la política se muestra en la Vista de código en el centro inferior del editor de proxy de API.
    • El elemento XML y los valores de los atributos de la política se muestran en el Inspector de propiedades, en el lado derecho del editor de proxy de API.

    El panel del Inspector de propiedades muestra los valores de la política de Spike Arrest-1.

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

    Puedes especificar la tasa como un valor de número entero por minuto (pm) o por segundo (ps). Este es un límite muy bajo y solo se usa para este instructivo a fin de demostrar la política. Por lo general, se establece en un límite mucho más alto.

    Ten en cuenta que el valor de Rate en el inspector de propiedades también cambia a 1pm. Como alternativa, puedes cambiar el valor de Rate en el Inspector de propiedades y se reflejará en la vista XML.

  12. Haga clic en Save para guardar la revisión actual con sus cambios.
  13. Implementa los cambios con el botón Implementar en:.
  14. Llama a la API con curl y usa la URL para el dominio:

    curl "http://YOUR_DOMAIN/myproxy"

    Donde:

    Consulta Prueba el proxy de API para obtener más información.

    Asegúrate de que la solicitud se realice de forma correcta y veas la misma respuesta XML que viste antes. (También puedes ingresar solo la URL en un navegador web).

    A continuación, prueba la configuración Rate de diferentes maneras:

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

      Si intentas realizar más llamadas en un minuto, deberías seguir recibiendo el mensaje de error.

    • Edita tu política para establecer el límite <Rate> en 15pm (que se traduce en aproximadamente dos llamadas permitidas cada cuatro segundos en la nube) y, luego, guarda e implementa el proxy de API.
    • Ejecuta el comando curl o actualiza el navegador de forma repetida (curl es más rápido). Ten en cuenta que si realizas una o dos llamadas en intervalos de 4 segundos, las llamadas se realizarán de forma correcta. Si haces las llamadas con rapidez, más de dos en 4 segundos, deberías ver el error de falla. Sin embargo, después de cada intervalo de 4 segundos, puedes continuar haciendo llamadas, en lugar de bloquearse durante todo un minuto (con la configuración de 1pm).