Ajouter la règle Spike Arrest à votre API

Vous consultez la documentation d'Apigee X.
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

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 500 pour une requête.

Ajoutez la règle SpikeArrest à un proxy d'API :

  1. Connectez-vous à l'UI Apigee.
  2. Sélectionnez Développer > Proxys API dans la barre de navigation de gauche.
  3. 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.

  4. Dans l'éditeur du nouveau proxy d'API, cliquez sur l'onglet Développer :

    L'onglet "Développer" se trouve entre les onglets "Présentation" et "Trace".

    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.

  5. Dans le volet de navigation de gauche, cliquez sur PreFlow sous Proxy Endpoints > default. (Les autres tutoriels couvrent le concept de flux.)
  6. 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.

    Clic sur "Step" dans la requête PreFlow.

  7. Sélectionnez SpikeArrest dans la catégorie "Traffic Management" (Gestion du trafic). La boîte de dialogue New Policy (Nouvelle règle) s'affiche :

    Créer une règle SpikeArrest

  8. 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.
  9. Dans le navigateur, assurez-vous que PreFlow sous Proxy Endpoints > par défaut 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.

    Affichage PreFlow avec la règle SpikeArrest.

  10. 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.

    Le volet de l'inspecteur de propriétés affiche les valeurs de la règle SpikeArrest-1

  11. Dans le fichier XML de la règle, remplacez la valeur de l'élément <Rate> par 1pm (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.

  12. Cliquez sur Save (Enregistrer) pour enregistrer vos modifications dans la révision actuelle.
  13. Appelez l'API à l'aide de curl en utilisant l'URL de votre domaine :

    curl "http://YOUR_DOMAIN/myproxy"

    Exemple :

    curl "http://apitest.example.com/myproxy"

    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.)

  14. 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.

  15. Modifiez la règle pour définir la limite <Rate> sur 15pm (ce qui signifie qu'environ deux appels sont autorisés toutes les quatre secondes dans le cloud), puis enregistrez le proxy d'API.
  16. 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 recevoir une 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ètre 1pm).