Igénylés beküldése
A KÖVETKEZŐRE VONATKOZIK: Minden API Management-szint
A send-request
szabályzat elküldi a megadott kérést a megadott URL-címre, és nem vár tovább a megadott időtúllépési értéknél.
Feljegyzés
Állítsa be a szabályzat elemeit és gyermekelemeit a szabályzatutasításban megadott sorrendben. További információ az API Management-szabályzatok beállításáról és szerkesztéséről.
Szabályzatutasítás
<send-request mode="new | copy" response-variable-name="" timeout="60 sec" ignore-error
="false | true">
<set-url>request URL</set-url>
<set-method>...</set-method>
<set-header>...</set-header>
<set-body>...</set-body>
<authentication-certificate thumbprint="thumbprint" />
<proxy>...</proxy>
</send-request>
Attribútumok
Attribútum | Leírás | Kötelező | Alapértelmezett |
---|---|---|---|
mód | Meghatározza, hogy ez egy new kérés, vagy copy az aktuális kérelem fejléceinek és törzsének egy része. A kimenő szabályzat szakaszban mode=copy nem inicializálja a kérelem törzsét. A szabályzatkifejezések engedélyezettek. |
Nem | new |
response-variable-name | A válaszobjektumot fogadó környezeti változó neve. Ha a változó nem létezik, a szabályzat sikeres végrehajtásakor jön létre, és gyűjteményen keresztül context.Variable lesz elérhető. A szabályzatkifejezések engedélyezettek. |
Igen | n/a |
timeout | Az URL-cím hívásának meghiúsulása előtt másodpercekben megadott időtúllépési időköz. A szabályzatkifejezések engedélyezettek. | Nem | 60 |
ignore-error | Ha true a kérés hibát eredményez, a rendszer figyelmen kívül hagyja a hibát, és a válaszváltozó null értéket tartalmaz. A szabályzatkifejezések nem engedélyezettek. |
Nem | false |
Elemek
Elem | Leírás | Kötelező |
---|---|---|
set-url | A kérés URL-címe. A szabályzatkifejezések engedélyezettek. | Nem, ha mode=copy ; egyébként igen. |
set-method | Beállítja a kérés metódusát. A szabályzatkifejezések nem engedélyezettek. | Nem, ha mode=copy ; egyébként igen. |
set-header | Beállít egy fejlécet a kérelemben. Több set-header elem használata több kérelemfejléchez. |
Nem |
set-body | Beállítja a kérelem törzsét. | Nem |
hitelesítés-tanúsítvány | Egy attribútumban thumbprint megadott ügyfélhitelesítéshez használandó tanúsítvány. |
Nem |
helyettes | A kérelem átirányítása HTTP-proxyn keresztül. | Nem |
Használat
- Szabályzatszakaszok: bejövő, kimenő, háttérrendszer, hiba
- Szabályzathatókörök: globális, munkaterület, termék, API, művelet
- Átjárók: dedikált, használat, saját üzemeltetésű, munkaterület
Használati megjegyzések
Ha az API Management-példány belső módban van üzembe helyezve (injektálva) egy virtuális hálózaton, és ezzel a szabályzattal api-kérést küld egy olyan API-nak, amely ugyanabban az API Management-példányban van közzétéve, http 500 BackendConnectionFailure-hibával időtúllépést tapasztalhat. Ez egy Azure Load Balancer-korlátozás eredménye.
Ebben a forgatókönyvben az API-kérések átjáróhoz való láncolásához konfigurálja set-url
a localhost-visszacsatolási URL-címet https://127.0.0.1
. Emellett állítsa be a HOST
fejlécet az API Management-példány átjáró-gazdagépének megadására. Használhatja az alapértelmezett azure-api.net
vagy az egyéni tartománygazdát. Példa:
<send-request>
<set-url>https://127.0.0.1/myapi/myoperation</set-url>
<set-header name="Host">
<value>myapim.azure-api.net</value>
</set-header>
</send-request>
További információkért tekintse meg ezt a blogbejegyzést.
Példa
Ez a példa bemutatja, hogyan ellenőrizheti a referencia-jogkivonatot egy engedélyezési kiszolgálóval. A mintával kapcsolatos további információkért lásd : Az Azure API Management szolgáltatás külső szolgáltatásainak használata.
<inbound>
<!-- Extract token from Authorization header parameter -->
<set-variable name="token" value="@(context.Request.Headers.GetValueOrDefault("Authorization","scheme param").Split(' ').Last())" />
<!-- Send request to Token Server to validate token (see RFC 7662) -->
<send-request mode="new" response-variable-name="tokenstate" timeout="20" ignore-error="true">
<set-url>https://microsoft-apiappec990ad4c76641c6aea22f566efc5a4e.azurewebsites.net/introspection</set-url>
<set-method>POST</set-method>
<set-header name="Authorization" exists-action="override">
<value>basic dXNlcm5hbWU6cGFzc3dvcmQ=</value>
</set-header>
<set-header name="Content-Type" exists-action="override">
<value>application/x-www-form-urlencoded</value>
</set-header>
<set-body>@($"token={(string)context.Variables["token"]}")</set-body>
</send-request>
<choose>
<!-- Check active property in response -->
<when condition="@((bool)((IResponse)context.Variables["tokenstate"]).Body.As<JObject>()["active"] == false)">
<!-- Return 401 Unauthorized with http-problem payload -->
<return-response>
<set-status code="401" reason="Unauthorized" />
<set-header name="WWW-Authenticate" exists-action="override">
<value>Bearer error="invalid_token"</value>
</set-header>
</return-response>
</when>
</choose>
<base />
</inbound>
Kapcsolódó szabályzatok
Kapcsolódó tartalom
A szabályzatok használatával kapcsolatos további információkért lásd:
- Oktatóanyag: AZ API átalakítása és védelme
- Szabályzathivatkozás a szabályzatutasságok és azok beállításainak teljes listájához
- Házirend-kifejezések
- Házirendek beállítása vagy szerkesztése
- Szabályzatkonfigurációk újrafelhasználása
- Szabályzatrészletek adattára
- Szabályzatok létrehozása a Microsoft Copilot használatával az Azure-ban