觸發輸出繫結
適用於:開發人員 | 進階
invoke-dapr-binding
原則會指示 API 管理閘道觸發輸出 Dapr 繫結。 此原則會藉由向 http://localhost:3500/v1.0/bindings/{{bind-name}},
發出 HTTP POST 要求,要取代範本參數並新增原則陳述式所指定的內容。
該原則假設 Dapr 會在與閘道相同的 Pod 中的 Sidecar 容器內執行。 Dapr 執行階段負責叫用繫結所代表的外部資源。 深入了解 Dapr 與 APIM 整合。
注意
請依照原則陳述式中提供的順序,來設定原則的元素和子元素。 深入了解如何設定或編輯 APIM 原則。
原則陳述式
<invoke-dapr-binding name="bind-name" operation="op-name" ignore-error="false | true" response-variable-name="resp-var-name" timeout="in seconds" template="Liquid" content-type="application/json">
<metadata>
<item key="item-name"><!-- item-value --></item>
</metadata>
<data>
<!-- message content -->
</data>
</invoke-dapr-binding>
屬性
屬性 | 描述 | 是必要欄位 | 預設 |
---|---|---|---|
NAME | 目標繫結程序名稱 務必符合 Dapr 中的已定義名稱。 允許使用原則運算式。 | Yes | N/A |
作業 | 目標作業名稱 (繫結特定)。 在 Dapr 中對應至 作業 的參數。 不允許使用原則運算式。 | No | 無 |
ignore-error | 如果設定為 true ,則會指示原則不要在收到來自 Dapr 執行階段的錯誤時觸發「on-error」區段。 不允許使用原則運算式。 |
No | false |
response-variable-name | 要用於儲存 Dapr 執行階段回應的變數集合項目名稱。 不允許使用原則運算式。 | No | 無 |
timeout | 等候 Dapr 執行階段回應的時間 (以秒計)。 其範圍可從 1 至 240 秒 允許使用原則運算式。 | No | 5 |
template | 用來轉換訊息內容的範本化引擎。 「Liquid」是唯一支援的值。 | No | 無 |
Content-Type | 訊息內容的類型。 「application/json」是唯一支援的值。 | No | 無 |
元素
元素 | 描述 | 必要 |
---|---|---|
中繼資料 | 索引鍵/值組所形式的繫結特有中繼資料。 在 Dapr 中對應至 CLR 中繼資料 的屬性。 | No |
資料 | 訊息內容。 在 Dapr 中對應至 資料 的屬性。 允許使用原則運算式。 | No |
使用方式
使用注意事項
必須在自我裝載閘道中啟用 Dapr 支援。
範例
下列範例,會示範使用作業名稱「create」觸發名為「external-systems」的輸出繫結、由兩個名為「source」和「client-ip」的索引鍵/值專案所組成的中繼資料,以及來自原始要求的主體。 從 Dapr 執行階段所接收的回應會儲存在內容物件中變數集合的「bind-response」專案內。
如果 Dapr 在執行階段因某些原因而失敗,並因錯誤而回應,則會觸發「on-error」區段,並從 Dapr 執行階段所接收的回應逐字傳回至呼叫端。 否則,會傳回預設200 OK
回應。
「後端」區段是空的,而且該要求不會轉送至後端。
<policies>
<inbound>
<base />
<invoke-dapr-binding
name="external-system"
operation="create"
response-variable-name="bind-response">
<metadata>
<item key="source">api-management</item>
<item key="client-ip">@(context.Request.IpAddress )</item>
</metadata>
<data>
@(context.Request.Body.As<string>() )
</data>
</invoke-dapr-binding>
</inbound>
<backend>
</backend>
<outbound>
<base />
</outbound>
<on-error>
<base />
<return-response response-variable-name="bind-response" />
</on-error>
</policies>
相關原則
相關內容
如需使用原則的詳細資訊,請參閱:
- 教學課程:轉換及保護 API
- 原則參考,取得原則陳述式及其設定的完整清單
- 原則運算式
- 設定或編輯原則
- 重複使用原則設定
- 原則程式碼片段存放庫 (英文)
- Azure API 管理 原則工具組
- 使用 Microsoft Azure Copilot 撰寫原則