Vytvoření rozšířených zásad
Tato lekce obsahuje referenční informace pro následující zásady služby API Management:
- Tok řízení – Podmíněně používá prohlášení o zásadách na základě výsledků vyhodnocení logických výrazů.
- Přeposlání požadavku – přesměruje požadavek do back-endové služby.
- Omezení souběžnosti – Zabraňuje provádění uzavřených zásad více než zadaným počtem požadavků najednou.
- Protokol do centra událostí – Odesílá zprávy v zadaném formátu do centra událostí definovaného entitou Logger.
- Napodobení odpovědi – Přeruší spuštění kanálu a vrátí napodobenou odpověď přímo volajícímu.
- Opakování – opakování provádění uzavřených prohlášení zásad, pokud a dokud není splněna podmínka. Provádění se opakuje v zadaných časových intervalech a až do zadaného počtu opakování.
Tok řízení
Zásady choose
se vztahují k uzavřeným prohlášením zásad na základě výsledku vyhodnocení logických výrazů, podobně jako u konstruktoru if-then-else nebo switch v programovacím jazyce.
<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>
Zásady toku řízení musí obsahovat alespoň jeden <when/>
prvek. Prvek <otherwise/>
je nepovinný. Podmínky v <when/>
elementech se vyhodnocují v pořadí jejich vzhledu v rámci zásad. Příkazy zásad uzavřené v prvním <when/>
prvku se použijí, pokud je atribut podmínky pravdivý. Pokud jsou všechny atributy podmínky elementu nepravdivé, použijí se zásady uzavřené v <otherwise/>
elementu <when/>
, pokud jsou přítomné.
Přeposlání požadavku
Zásady forward-request
předávají příchozí požadavek back-endové službě zadané v kontextu požadavku. Adresa URL back-endové služby je zadaná v nastavení rozhraní API a dá se změnit pomocí zásad nastavené back-endové služby.
Odebráním této zásady se požadavek nepřesměrovává do back-endové služby. Zásady v oddílu odchozích přenosů se vyhodnocují okamžitě po úspěšném dokončení zásad v příchozím oddílu.
<forward-request timeout="time in seconds" follow-redirects="true | false"/>
Omezení souběžnosti
Zásady limit-concurrency
brání provádění uzavřených zásad více než zadaným počtem požadavků kdykoli. Když požadavky překročí toto číslo, nové požadavky okamžitě selžou se stavovým kódem 429 Příliš mnoho požadavků .
<limit-concurrency key="expression" max-count="number">
<!— nested policy statements -->
</limit-concurrency>
Přihlášení do centra událostí
Zásada log-to-eventhub
odesílá zprávy v zadaném formátu do centra událostí definovaného entitou Logger. Jak už název napovídá, zásada se používá k ukládání vybraných informací o kontextu požadavku nebo odpovědi pro online nebo offline analýzu.
<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>
Napodobení odpovědi
Jak mock-response
už název napovídá, slouží k napodobení rozhraní API a operací. Přeruší normální spuštění kanálu a vrátí napodobenou odpověď volajícímu. Zásady se vždy snaží vrátit odpovědi s nejvyšší věrností. Dává přednost příkladům obsahu odpovědí, kdykoli je k dispozici. Generuje ukázkové odpovědi ze schémat, pokud jsou k dispozici schémata a příklady nejsou. Pokud se nenajde příklady nebo schémata, vrátí se odpovědi bez obsahu.
<mock-response status-code="code" content-type="media type"/>
Zkusit znovu
Zásady retry
spustí své podřízené zásady jednou a pak se znovu pokusí provést, dokud se opakování condition
nevyčerpá false
nebo se nevyčerpá count
.
<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>
Návratová odpověď
Zásada return-response
přeruší spuštění kanálu a vrátí výchozí nebo vlastní odpověď volajícímu. Výchozí odpověď není 200 OK
bez textu. Vlastní odpověď je možné zadat prostřednictvím kontextové proměnné nebo prohlášení zásad. Pokud je k dispozici obojí, příkaz zásady před vrácením volajícímu upraví kontextové proměnné.
<return-response response-variable-name="existing context variable">
<set-header/>
<set-body/>
<set-status/>
</return-response>
Další prostředky
- Další příklady zásad najdete v zásadách služby API Management.
- Zpracování chyb v zásadách služby API Management