Geavanceerd beleid maken
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. Beleidsinstructies die binnen het eerste <when/>
element zijn ingesloten, worden toegepast wanneer het kenmerk voorwaarde waar is. 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. De beleidsregels in de sectie Uitgaand verkeer worden onmiddellijk geëvalueerd nadat het beleid is voltooid in de sectie Inkomend 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. Wanneer aanvragen dit aantal overschrijden, 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, wijzigt de beleidsinstructie de contextvariabele voordat deze naar de aanroeper wordt geretourneerd.
<return-response response-variable-name="existing context variable">
<set-header/>
<set-body/>
<set-status/>
</return-response>
Meer informatie
- Ga naar API Management-beleid voor meer beleidsvoorbeelden.
- Fout bij het verwerken van API Management-beleid