觸發輸出繫結

適用於:開發人員 |進階版

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>

如需使用原則的詳細資訊,請參閱: