傳送單向要求
適用於:所有 APIM 層
send-one-way-request
原則會將所提供的要求傳送到指定的 URL,無須等待回應。
注意
請依照原則陳述式中提供的順序,來設定原則的元素和子元素。 深入了解如何設定或編輯 APIM 原則。
原則陳述式
<send-one-way-request mode="new | copy" timeout="time in seconds">
<set-url>request URL</set-url>
<set-method>...</set-method>
<set-header>...</set-header>
<set-body>...</set-body>
<authentication-certificate thumbprint="thumbprint" />
</send-one-way-request>
屬性
屬性 | 描述 | 是必要欄位 | 預設 |
---|---|---|---|
mode | 判斷這是 new 要求,還是目前要求中標頭和本文的 copy 。 在輸出原則區段中,mode=copy 不會將要求本文初始化。 允許使用原則運算式。 |
No | new |
timeout | 以秒為單位的逾時間隔,URL 的呼叫在經過此間隔後便會失敗。 允許使用原則運算式。 | No | 60 |
元素
元素 | 描述 | 必要 |
---|---|---|
set-url | 要求的 URL。 允許使用原則運算式。 | 如果 mode=copy 即為「否」,否則為「是」。 |
set-method | 設定要求的方法。 不允許使用原則運算式。 | 如果 mode=copy 即為「否」,否則為「是」。 |
set-header | 在要求中設定標頭。 針對多個要求標頭使用多個 set-header 元素。 |
No |
set-body | 設定要求的本文。 | No |
authentication-certificate | 用於用戶端驗證的憑證,在 thumbprint 屬性中指定。 |
No |
Proxy | 透過 HTTP Proxy 路由傳送要求。 | No |
使用方式
範例
如果 HTTP 回應碼大於或等於 500,此範例會使用 send-one-way-request
原則,將訊息傳送至 Slack 聊天室。 如需此範例的詳細資訊,請參閱使用來自 Azure API 管理服務的外部服務。
<choose>
<when condition="@(context.Response.StatusCode >= 500)">
<send-one-way-request mode="new" timeout="20">
<set-url>https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX</set-url>
<set-method>POST</set-method>
<set-body>@{
return new JObject(
new JProperty("username","APIM Alert"),
new JProperty("icon_emoji", ":ghost:"),
new JProperty("text", String.Format("{0} {1}\nHost: {2}\n{3} {4}\n User: {5}",
context.Request.Method,
context.Request.Url.Path + context.Request.Url.QueryString,
context.Request.Url.Host,
context.Response.StatusCode,
context.Response.StatusReason,
context.User.Email
))
).ToString();
}</set-body>
</send-one-way-request>
</when>
</choose>
相關原則
相關內容
如需使用原則的詳細資訊,請參閱:
- 教學課程:轉換及保護 API
- 原則參考,取得原則陳述式及其設定的完整清單
- 原則運算式
- 設定或編輯原則
- 重複使用原則設定
- 原則程式碼片段存放庫 (英文)
- Azure API 管理 原則工具組
- 使用 Microsoft Azure Copilot 撰寫原則