Geavanceerd beleid maken

Voltooid

Deze les bevat een referentie voor de volgende API Management-beleidsregels:

  • Controlestroom: beleidsinstructies voorwaardelijk toepassen op basis van de resultaten van de evaluatie van Boole-expressies.
  • Aanvraag doorsturen: stuurt de aanvraag door naar de back-endservice.
  • Gelijktijdigheid beperken: hiermee voorkomt u dat ingesloten beleidsregels worden uitgevoerd door meer dan het opgegeven aantal aanvragen tegelijk.
  • Aanmelden bij Event Hub : verzendt berichten in de opgegeven indeling naar een Event Hub die is gedefinieerd door een Logger-entiteit.
  • Mock-antwoord: pijplijnuitvoering afgebroken en retourneert een gesimuleerd antwoord rechtstreeks naar de beller.
  • Opnieuw proberen: voer de uitvoering van de ingesloten beleidsinstructies opnieuw uit als en totdat aan de voorwaarde is voldaan. De uitvoering wordt herhaald met de opgegeven tijdsintervallen en tot het opgegeven aantal nieuwe pogingen.

Controlestroom

Het choose beleid past ingesloten beleidsinstructies toe op basis van het resultaat van de evaluatie van Boole-expressies, vergelijkbaar met een if-then-else of een switchconstructie in een programmeertaal.

<choose>
    <when condition="Boolean expression | Boolean constant">
        <!— one or more policy statements to be applied if the above condition is true  -->
    </when>
    <when condition="Boolean expression | Boolean constant">
        <!— one or more policy statements to be applied if the above condition is true  -->
    </when>
    <otherwise>
        <!— one or more policy statements to be applied if none of the above conditions are true  -->
</otherwise>
</choose>

Het controlestroombeleid moet ten minste één <when/> element bevatten. Het <otherwise/> element is optioneel. Voorwaarden in <when/> elementen worden geëvalueerd in volgorde van hun uiterlijk binnen het beleid. Beleidsinstructie(s) tussen het eerste <when/> element met voorwaardekenmerk is gelijk aan true, wordt toegepast. Beleidsregels die zijn opgenomen in het <otherwise/> element, indien aanwezig, worden toegepast als alle kenmerken van de <when/> elementvoorwaarde onwaar zijn.

Aanvraag doorsturen

Het forward-request beleid stuurt de binnenkomende aanvraag door naar de back-endservice die is opgegeven in de aanvraagcontext. De URL van de back-endservice wordt opgegeven in de API-instellingen en kan worden gewijzigd met behulp van het beleid voor de back-endservice.

Als u dit beleid verwijdert, wordt de aanvraag niet doorgestuurd naar de back-endservice en worden de beleidsregels in de sectie Uitgaand verkeer onmiddellijk geëvalueerd nadat het beleid is voltooid in de sectie Binnenkomend verkeer.

<forward-request timeout="time in seconds" follow-redirects="true | false"/>

Gelijktijdigheid beperken

Het limit-concurrency beleid voorkomt dat ingesloten beleidsregels worden uitgevoerd door meer dan het opgegeven aantal aanvragen op elk gewenst moment. Bij het overschrijden van dat aantal mislukken nieuwe aanvragen onmiddellijk met de statuscode 429 Te veel aanvragen .

<limit-concurrency key="expression" max-count="number">
        <!— nested policy statements -->
</limit-concurrency>

Aanmelden bij Event Hub

Het log-to-eventhub beleid verzendt berichten in de opgegeven indeling naar een Event Hub die is gedefinieerd door een Logger-entiteit. Zoals de naam al aangeeft, wordt het beleid gebruikt voor het opslaan van geselecteerde aanvraag- of antwoordcontextinformatie voor online- of offlineanalyse.

<log-to-eventhub logger-id="id of the logger entity" partition-id="index of the partition where messages are sent" partition-key="value used for partition assignment">
  Expression returning a string to be logged
</log-to-eventhub>

Gesimuleerd antwoord

De mock-response, zoals de naam al aangeeft, wordt gebruikt om API's en bewerkingen te mocken. De normale pijplijnuitvoering wordt afgebroken en retourneert een gesimuleerd antwoord op de aanroeper. Het beleid probeert altijd antwoorden met de hoogste betrouwbaarheid te retourneren. Het geeft de voorkeur aan voorbeelden van antwoordinhoud, indien beschikbaar. Er worden voorbeeldantwoorden gegenereerd op basis van schema's, wanneer schema's worden opgegeven en voorbeelden niet. Als er geen voorbeelden of schema's worden gevonden, worden antwoorden zonder inhoud geretourneerd.

<mock-response status-code="code" content-type="media type"/>

Opnieuw proberen

Het retry beleid voert het onderliggende beleid eenmaal uit en voert vervolgens de uitvoering opnieuw uit totdat het opnieuw condition wordt false geprobeerd of opnieuw count wordt geprobeerd.

<retry
    condition="boolean expression or literal"
    count="number of retry attempts"
    interval="retry interval in seconds"
    max-interval="maximum retry interval in seconds"
    delta="retry interval delta in seconds"
    first-fast-retry="boolean expression or literal">
        <!-- One or more child policies. No restrictions -->
</retry>

Antwoord retourneren

Het return-response beleid ontbreekt de uitvoering van pijplijnen en retourneert een standaard- of aangepast antwoord op de aanroeper. Standaardantwoord is 200 OK zonder hoofdtekst. Aangepast antwoord kan worden opgegeven via een contextvariabele of beleidsinstructies. Wanneer beide worden opgegeven, wordt het antwoord in de contextvariabele gewijzigd door de beleidsinstructies voordat deze naar de aanroeper worden geretourneerd.

<return-response response-variable-name="existing context variable">
  <set-header/>
  <set-body/>
  <set-status/>
</return-response>

Aanvullende bronnen