Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
UYGULANANLAR: Tüm API Management katmanları
İlke send-request , belirtilen URL'ye sağlanan isteği gönderir ve ayarlanan zaman aşımı değerinden daha uzun süre beklemez.
Not
İlkenin öğelerini ve alt öğelerini ilke bildiriminde sağlanan sırayla ayarlayın. API Management ilkelerini ayarlama veya düzenleme hakkında daha fazla bilgi edinin.
İlke bildirimi
<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" />
<authentication-managed-identity resource="ResourceID"/>
<proxy>...</proxy>
</send-request>
Özellikler
| Öznitelik | Açıklama | Zorunlu | Varsayılan |
|---|---|---|---|
| mod | Bunun bir new istek mi yoksa geçerli istekteki üst bilgi ve gövdelerden biri copy mi olduğunu belirler. Giden ilkesi bölümünde, mode=copy istek gövdesini başlatmaz. İlke ifadelerine izin verilir. |
Hayır | new |
| response-variable-name | Yanıt nesnesi alacak bağlam değişkeninin adı. Değişken yoksa, ilkenin başarıyla yürütülmesiyle oluşturulur ve koleksiyon aracılığıyla context.Variable erişilebilir hale gelir. İlke ifadelerine izin verilir. |
Evet | Yok |
| zaman aşımı | URL çağrısı başarısız olmadan önce saniye cinsinden zaman aşımı aralığı. İlke ifadelerine izin verilir. | Hayır | 60 |
| ignore-error | ve true isteği bir hatayla sonuçlanırsa, hata yoksayılır ve yanıt değişkeni null değer içerir. İlke ifadelerine izin verilmez. |
Hayır | false |
Öğeler
| Öğe | Açıklama | Zorunlu |
|---|---|---|
| URL ayarla | İsteğin URL'si. İlke ifadelerine izin verilir. | Hayır, değilse mode=copyevet. |
| set-method | İsteğin yöntemini ayarlar. İlke ifadelerine izin verilmez. | Hayır, değilse mode=copyevet. |
| başlık-ayarla | İstekte bir üst bilgi ayarlar. Birden çok set-header istek üst bilgisi için birden çok öğe kullanın. |
Hayır |
| gövdeyi ayarla | İsteğin gövdesini ayarlar. | Hayır |
| kimlik doğrulama sertifikası | için kullanılacak sertifika. | Hayır |
| authentication-managed-identity | Öznitelikte resourcebelirtilen kaynağa yönetilen kimlik ile kimlik doğrulama. |
Hayır |
| ara sunucu | İsteği HTTP ara sunucusu aracılığıyla yönlendirir. | Hayır |
Kullanım
- İlke bölümleri: gelen, giden, arka uç, hatada
- İlke kapsamları: genel, çalışma alanı, ürün, API, işlem
- Ağ geçitleri: ayrılmış, tüketim, şirket içinde barındırılan, çalışma alanı
Kullanım notları
API Management örneğiniz iç modda bir sanal ağa dağıtılır (eklenir) ve aynı API Management örneğinde kullanıma sunulan bir API'ye API isteği göndermek için bu ilkeyi kullanırsanız, HTTP 500 BackendConnectionFailure hatasıyla zaman aşımıyla karşılaşabilirsiniz. Bu, Azure Load Balancer sınırlamasının sonucudur.
Bu senaryoda API isteklerini ağ geçidine zincirleme için localhost geri döngü URL'sini set-urlkullanacak şekilde yapılandırınhttps://127.0.0.1. Ayrıca, üst bilgiyi bu API Management örneğinin ağ geçidi ana bilgisayarını belirtecek şekilde ayarlayın HOST . Varsayılan azure-api.net veya özel etki alanı konağınızı kullanabilirsiniz. Örneğin:
<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>
Daha fazla bilgi için bu blog gönderisine bakın.
Örnek
Bu örnekte, bir yetkilendirme sunucusuyla başvuru belirtecini doğrulamanın bir yolu gösterilmektedir. Bu örnek hakkında daha fazla bilgi için bkz . Azure API Management hizmetinden dış hizmetleri kullanma.
<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>
İlgili ilkeler
İlgili içerik
İlkelerle çalışma hakkında daha fazla bilgi için bkz:
- Öğretici: API'nizi dönüştürme ve koruma
- İlke deyimlerinin ve ayarlarının tam listesi için ilke başvurusu
- İlke ifadeleri
- İlkeleri ayarlama veya düzenleme
- İlke yapılandırmalarını yeniden kullanma
- İlke kod parçacıkları deposu
- İlke oyun alanı deposu
- Azure API Management ilke araç seti
- Politikalar oluşturmak, açıklamak ve sorun gidermek için Copilot yardımı alın