Cette page s'applique à Apigee et à Apigee hybrid.
Consultez la documentation d' Apigee Edge.
Points abordés
Dans ce tutoriel, vous allez apprendre à effectuer les opérations suivantes :
- Ajoutez une règle qui affecte la requête et la réponse.
- Examinez les effets de la règle.
Prérequis
- Une installation Apigee. Consultez la page Présentation et conditions préalables.
- Un proxy d'API fonctionnel avec au moins une règle associée Consultez la section sur la présentation de la création de votre premier proxy d'API.
- Un client API HTTP installé sur votre machine pour effectuer des appels d'API Les exemples du tutoriel utilisent
curl
.
Ajouter la règle SpikeArrest
Dans ce tutoriel, vous ajouterez et configurer la règle SpikeArrest pour protéger le service cible contre les pics de trafic soudains pouvant être causés par une augmentation de l'utilisation, des bugs clients ou des attaques malveillantes. Lorsque le nombre de requêtes dépasse la limitation du débit, l'API renvoie une erreur HTTP 429
.
Nouvel éditeur de proxys
Ajoutez la règle SpikeArrest à un proxy d'API :
Si vous utilisez l'interface utilisateur d'Apigee dans la console Cloud : sélectionnez Développement de proxys > Proxys d'API.
Si vous utilisez la version classique de l'interface utilisateur d'Apigee : sélectionnez Développer > Proxys d'API, puis dans le volet Proxys, sélectionnez l'environnement du proxy.
Si vous avez suivi le tutoriel de démarrage, vous pouvez l'ajouter au proxy d'API que vous avez créé à la section Créer un proxy d'API.
- Cliquez sur l'onglet Développer :
- Dans le volet de gauche, cliquez sur le bouton + de la ligne +.
Dans la boîte de dialogue Créer une règle, cliquez dans le champ Sélectionner un type de règle et faites défiler la page jusqu'à Gestion du trafic, puis sélectionnez SpikeArrest.
Vous pouvez éventuellement modifier les champs Name (Nom) et Display name (Nom à afficher) de la règle. Par défaut, Apigee fournit un préfixe court pour le nom de la règle (SA- dans le cas présent). Vous pouvez ajouter une séquence de mots descriptifs, séparés par des tirets, après le préfixe. Consultez les conventions d'attribution de noms.
Lorsque vous avez terminé, cliquez sur Create (Créer) pour créer la règle.
Maintenant que vous avez créé la règle SpikeArrest, vous pouvez l'ajouter à une étape dans le PreFlow.
- Sélectionnez Proxy Endpoints > default > PreFlow (Points de terminaison du proxy > Par défaut > PreFlow) dans le volet de gauche :
Remarque : Vous devrez peut-être développer l'éditeur visuel dans le volet de droite pour afficher tous les éléments. Pour ce faire, cliquez sur le séparateur et faites-le glisser entre l'éditeur visuel et l'éditeur de texte.
- Cliquez sur le bouton + à côté de PreFlow dans le volet PreFlow en bas à droite de l'éditeur visuel :
- Dans la boîte de dialogue Ajouter une règle, sélectionnez la règle Spike Arrest.
Cliquez sur Ajouter pour associer la règle.
La règle Spike Arrest s'affiche désormais dans le volet Réponse :
Maintenant que vous avez associé la règle Spike Arrest au PreFlow, vous pouvez essayer de modifier le code de la règle :
Dans le volet Response, sélectionnez SA-.
- L'éditeur de texte affiche le code XML du proxy, y compris l'étape de la règle SpikeArrest dans l'élément Response du flux 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>
-
Dans le fichier XML de la règle, remplacez la valeur de l'élément
<Rate>
par1pm
(ce qui signifie qu'environ deux requêtes sont autorisées toutes les 60 secondes dans le cloud).Vous pouvez spécifier la fréquence sous forme de valeur entière par minute (
pm
) ou par seconde (ps
). Il s'agit d'une limite très faible, utilisée uniquement dans ce tutoriel pour illustrer la règle. En règle générale, vous le définissez sur une limite beaucoup plus élevée.Notez que la valeur
Rate
dans l'inspecteur de propriétés passe également à1pm
. Vous pouvez également modifier la valeur Rate dans l'inspecteur de propriétés. Cela sera reflété dans la vue XML. - Cliquez sur Save (Enregistrer) pour enregistrer vos modifications dans la révision actuelle.
Éditeur de proxy classique
Ajoutez la règle SpikeArrest à un proxy d'API :
- Connectez-vous à l'UI Apigee.
- Sélectionnez Développer > Proxys API dans la barre de navigation de gauche.
- Sélectionnez le proxy d'API auquel vous souhaitez ajouter la règle SpikeArrest.
Si vous avez suivi le tutoriel de démarrage, vous pouvez l'ajouter au proxy d'API que vous avez créé à la section Créer un proxy d'API.
- Dans l'éditeur du nouveau proxy d'API, cliquez sur l'onglet Développer :
L'éditeur de proxy d'API vous permet de voir la structure de votre proxy d'API et de configurer son flux. L'éditeur présente une représentation visuelle du flux de messages de requêtes et de réponses de votre proxy, ainsi qu'un affichage modifiable du XML sous-jacent qui définit le proxy.
- Dans le volet de navigation de gauche, cliquez sur PreFlow sous PreFlow. (Les autres tutoriels couvrent le concept de flux.)
- Cliquez sur le bouton +Step supérieur, correspondant au PreFlow de requêtes. Une liste classée de toutes les règles que vous pouvez créer s'affiche.
- Sélectionnez SpikeArrest dans la catégorie "Traffic Management" (Gestion du trafic). La boîte de dialogue New Policy (Nouvelle règle) s'affiche :
- Conservez les noms par défaut, puis cliquez sur Add (Ajouter). La nouvelle règle est associée au flux PreFlow d'une requête.
- Dans le navigateur, assurez-vous que PreFlow sous PreFlow est toujours sélectionné et notez les éléments suivants dans l'éditeur de proxy d'API :
- La nouvelle règle SpikeArrest-1 est ajoutée sous Policies (Règles) dans le navigateur situé sur la gauche de l'éditeur de proxys d'API.
- L'icône SpikeArrest-1 est ajoutée à la vue Conception située au centre supérieur de l'éditeur de proxy d'API, qui est une représentation visuelle des flux de messages de votre proxy.
- Le code XML de la règle est affiché dans la vue Code au bas de l'éditeur de proxy d'API.
- Dans le navigateur, sélectionnez SpikeArrest-1 sous "Policies" (Règles) et notez les informations suivantes dans l'éditeur de proxy d'API :
- Les détails de la règle sont affichés dans la vue Concepteur, en haut au centre de l'éditeur de proxy d'API.
- Le code XML de la règle est affiché dans la vue Code au bas de l'éditeur de proxy d'API.
- Les valeurs des attributs et des éléments XML de la règle sont affichées dans l 'inspecteur de propriétés, à droite de l'éditeur de proxy d'API.
-
Dans le fichier XML de la règle, remplacez la valeur de l'élément
<Rate>
par1pm
(ce qui signifie qu'environ deux requêtes sont autorisées toutes les 60 secondes dans le cloud).Vous pouvez spécifier la fréquence sous forme de valeur entière par minute (
pm
) ou par seconde (ps
). Il s'agit d'une limite très faible, utilisée uniquement dans ce tutoriel pour illustrer la règle. En règle générale, vous le définissez sur une limite beaucoup plus élevée.Notez que la valeur
Rate
dans l'inspecteur de propriétés passe également à1pm
. Vous pouvez également modifier la valeur Rate dans l'inspecteur de propriétés. Cela sera reflété dans la vue XML. - Cliquez sur Save (Enregistrer) pour enregistrer vos modifications dans la révision actuelle.
- Déployez vos modifications à l'aide du bouton Déployer sur :.
-
Appelez l'API à l'aide de
curl
en utilisant l'URL de votre domaine :curl "http://YOUR_DOMAIN/myproxy"
où :
ENV_GROUP_HOSTNAME
est le nom d'hôte du groupe d'environnements que vous avez défini lors du provisionnement.DOMAIN_HOSTNAME
est le nom d'hôte de votre domaine.
Pour en savoir plus, consultez la page Tester le proxy d'API.
Assurez-vous que la requête aboutit et que la même réponse XML s'affiche. (Vous pouvez également saisir uniquement l'URL dans un navigateur Web.)
Essayez ensuite de tester le paramètre
Rate
de différentes manières :- Exécutez la commande
curl
(ou actualisez la fenêtre du navigateur) deux ou trois fois de plus lors d'une minute pour constater que vous obtenez le message suivant, car vous avez dépassé la limite de débit de la règle :{ "fault": { "faultstring":"Spike arrest violation. Allowed rate : 1pm", "detail": { "errorcode":"policies.ratelimit.SpikeArrestViolation"} } }
Si vous essayez d'effectuer d'autres appels dans la minute, vous devriez continuer à recevoir le message d'erreur.
- Modifiez la règle pour définir la limite <
Rate>
sur15pm
(ce qui signifie qu'environ deux appels sont autorisés toutes les quatre secondes dans le cloud), puis enregistrez et déployez le proxy d'API. - Exécutez la commande
curl
ou actualisez le navigateur à plusieurs reprises (curl
est plus rapide). Notez que si vous effectuez un ou deux appels dans des intervalles de quatre secondes, vos appels aboutissent. Si vous passez les appels plus rapidement, plus de deux en quatre secondes, vous devriez obtenir l'erreur. Toutefois, après chaque intervalle de quatre secondes, vous pouvez continuer à effectuer des appels, au lieu d'être bloqué pendant une minute entière (avec le paramètre1pm
).