Vytvoření rozšířených zásad

Dokončeno

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-responseuž 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