Ajouter la règle Spike Arrest à votre API

Vous consultez la documentation d'Apigee Edge.
Consultez la documentation Apigee X.
en savoir plus

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.

Ce dont vous aurez besoin

  • Au moins une règle dans votre proxy (également inclus dans le tutoriel "Premiers pas").
  • curl installé sur votre ordinateur pour effectuer des appels d'API à partir de la ligne de commande.

Ajouter la règle Spike Arrest

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 limite de débit, l'API renvoie une erreur HTTP 500 pour une requête.

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

  1. Connectez-vous à apigee.com/edge.
  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 stratégie Spike Arrest.

    Si vous avez suivi le tutoriel de démarrage, vous pouvez l'ajouter au proxy "getstarted" 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'é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.

    Cliquez sur "Step in Request PreFlow" (Étape dans le pré-flux de la requête)

  7. Sélectionnez Spike Arrest dans la catégorie "Gestion du trafic". La boîte de dialogue "Nouvelle règle" s'affiche :

    Créer une règle d'arrêt des pics

  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 Points de terminaison du proxy > par défaut est toujours sélectionné et notez les points suivants dans l'éditeur de proxys d'API :
    • La nouvelle règle Spike Arrest-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 Spike Arrest-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.

    Afficher la règle PreFlow avec arrêt de pics

  10. Dans le navigateur, sélectionnez Spike Arrest-1 sous "Règles" et notez les points suivants dans l'éditeur de proxys 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.

  11. Dans le fichier XML de la règle, remplacez la valeur de l'élément <Rate> par 1pm (ce qui correspond à environ deux requêtes 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é passe également à "1pm". Vous pouvez également modifier la valeur Fréquence dans l'inspecteur de propriété ; elle apparaîtra dans la vue XML.

  12. Cliquez sur Enregistrer pour enregistrer la révision actuelle avec vos modifications.
  13. Appelez l'API à l'aide de curl, en remplaçant le nom de votre organisation Apigee par org_name:

    curl "http://org_name-test.apigee.net/getstarted"

    Exemple :

    curl "http://ahamilton-eval-test.apigee.net/getstarted" | python -m json.tool

    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 en une minute. Notez que le message suivant s'affiche, 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 votre règle pour définir la limite <Rate> sur 15pm (ce qui signifie environ deux appels autorisés toutes les 4 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 4 secondes, vos appels aboutissent. Si vous passez les appels plus rapidement, plus de deux en quatre secondes, vous devriez obtenir la défaillance. Toutefois, après chaque intervalle de 4 secondes, vous pouvez continuer à effectuer des appels, au lieu d'être bloqués pendant une minute entière (avec le paramètre à 1pm).