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á
- Una instalación de Apigee. Consulta Descripción general y requisitos previos.
- Un proxy de API en funcionamiento con al menos una política conectada. Consulta Compila tu primera descripción general del proxy de API.
- Un cliente de API de HTTP instalado en tu máquina para realizar llamadas a la API. En los ejemplos del instructivo, se usa
curl
.
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:
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.
- Haz clic en la pestaña Desarrollar:
- En el panel de la izquierda, haz clic en el botón + en la fila Políticas.
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.
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.
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.
- Selecciona Proxy Endpoints > default > PreFlow en el panel izquierdo:
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.
- Haz clic en el botón + junto a PreFlow en el panel Respuesta en la esquina inferior derecha del editor visual:
- En el cuadro de diálogo Agregar paso de la política, selecciona la política Spike Arrest.
Haz clic en Agregar para adjuntar la política.
La política de Spike Arrest se muestra en el panel Respuesta:
Ahora que adjuntaste la política de Spike Arrest al PreFlow, puedes intentar cambiar el código para la política:
En el panel Response, selecciona SA-.
- 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>
-
En el XML de la política, cambia el valor del elemento
<Rate>
a1pm
(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 a1pm
. Como alternativa, puedes cambiar el valor de Rate en el Inspector de propiedades y se reflejará en la vista XML. - 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:
- Accede a la IU de Apigee.
- Selecciona Desarrollar > Proxies de API en la barra de navegación izquierda.
- 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.
- En el editor del nuevo proxy de API, haz clic en la pestaña Desarrollar:
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.
- 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).
- 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.
- Selecciona SpikeArrest en la categoría Administración del tráfico. Se mostrará el cuadro de diálogo de la nueva política:
- Deja los nombres predeterminados y haz clic en Agregar. La nueva política se adjunta al flujo de PreFlow de una solicitud.
- 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.
- En el navegador, selecciona SpikeArrest-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.
-
En el XML de la política, cambia el valor del elemento
<Rate>
a1pm
(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 a1pm
. Como alternativa, puedes cambiar el valor de Rate en el Inspector de propiedades y se reflejará en la vista XML. - Haga clic en Save para guardar la revisión actual con sus cambios.
- Implementa los cambios con el botón Implementar en:.
-
Llama a la API con
curl
y usa la URL para el dominio:curl "http://YOUR_DOMAIN/myproxy"
Donde:
ENV_GROUP_HOSTNAME
es el nombre de host del grupo de entornos que configuras durante el aprovisionamiento.DOMAIN_HOSTNAME
es el nombre de host de tu dominio.
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>
en15pm
(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 de1pm
).