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
- Una instalación de Apigee. Consulta la sección Información general y requisitos previos.
- Un proxy de API que funcione y que tenga al menos una política adjunta. Consulta la información general sobre cómo crear tu primer proxy de APIs.
- Un cliente de API HTTP instalado en tu máquina para hacer llamadas a la API. En los ejemplos del tutorial se usa
curl
.
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:
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.
- Haz clic en la pestaña Desarrollar.
- En el panel de la izquierda, haga clic en el botón + de la fila Políticas.
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.
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.
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.
- En el panel de la izquierda, selecciona Proxy Endpoints > default > PreFlow:
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.
- En el panel Respuesta, en la parte inferior derecha del editor visual, haz clic en el botón + situado junto a PreFlow:
- En el cuadro de diálogo Añadir política, selecciona la política Retención de picos.
Haga clic en Añadir para adjuntar la política.
La política Retención de picos se muestra ahora en el panel 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:
En el panel Respuesta, selecciona SA-.
- 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>
-
En el XML de la política, cambia el valor del elemento
.<Rate>
a1pm
(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 a1pm
. También puede cambiar el valor de Tasa en el Inspector de propiedades y se reflejará en la vista XML. - 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:
- Inicia sesión en la interfaz de Apigee.
- Seleccione Desarrollar > Proxies de API en la barra de navegación de la izquierda.
- 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.
- En el editor del nuevo proxy de API, haz clic en la pestaña Desarrollar:
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.
- 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.
- 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.
- Selecciona SpikeArrest en la categoría Gestión del tráfico. Aparecerá el cuadro de diálogo Nueva política:
- Deja los nombres predeterminados y haz clic en Añadir. La nueva política se adjunta al flujo PreFlow de una solicitud.
- 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.
- 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.
-
En el XML de la política, cambia el valor del elemento
.<Rate>
a1pm
(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 a1pm
. También puede cambiar el valor de Tasa en el Inspector de propiedades y se reflejará en la vista XML. - Haz clic en Guardar para guardar la revisión actual con los cambios.
- Implementa los cambios con el botón Implementar en:.
-
Llama a la API mediante
curl
con la URL de tu dominio:curl "http://YOUR_DOMAIN/myproxy"
donde:
ENV_GROUP_HOSTNAME
es el nombre de host del grupo de entornos que has definido durante el aprovisionamiento.DOMAIN_HOSTNAME
es el nombre de host de tu dominio.
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>
en15pm
(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 ajuste1pm
).