傳送要求至服務

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

set-backend-service 原則會將目前要求的目標 URL 設定為 http://localhost:3500/v1.0/invoke/{app-id}[.{ns-name}]/method/{method-name},並將範本參數取代為原則陳述式中指定的值。

該原則假設 Dapr 會在與閘道相同的 Pod 中的 Sidecar 容器內執行。 收到要求時,Dapr 執行階段會執行服務探索和實際的叫用,包括 HTTP 和 gRPC 之間的可能通訊協定翻譯、重試、分散式追蹤和錯誤處理。 深入了解 Dapr 與 API 管理整合

注意

請依照原則陳述式中提供的順序,來設定原則的元素和子元素。 深入了解如何設定或編輯 APIM 原則

原則陳述式

<set-backend-service backend-id="dapr" dapr-app-id="app-id" dapr-method="method-name" dapr-namespace="ns-name" />

屬性

屬性 描述 是必要欄位 預設
backend-id 務必設定為「dapr」。 Yes N/A
dapr-app-id 目標微服務的名稱。 用於在 Dapr 中形成 appId 參數。 允許使用原則運算式。 Yes N/A
dapr-method 在目標微服務上叫用的方法或 URL 名稱。 在 Dapr 中對應至 method-name 的參數。 允許使用原則運算式。 Yes N/A
dapr-namespace 目標微服務所在的命名空間名稱。 用於在 Dapr 中形成 appId 參數。 允許使用原則運算式。 No N/A

使用方式

使用注意事項

必須在自我裝載閘道中啟用 Dapr 支援。

範例

下列範例,會示範在名為「echo」的微服務上,叫用名為「back」的方法。 原則set-backend-service會將目的地 URL 設定為http://localhost:3500/v1.0/invoke/echo.echo-app/method/back。 該forward-request原則會將要求分派給 Dapr 執行階段,以將其傳遞給微服務。

為了明確起見,這裡會顯示該原則forward-request。 原則通常透過base關鍵字,來由全域範圍「繼承」。

<policies>
    <inbound>
        <base />
        <set-backend-service backend-id="dapr" dapr-app-id="echo" dapr-method="back" dapr-namespace="echo-app" />
    </inbound>
    <backend>
        <forward-request />
    </backend>
    <outbound>
        <base />
    </outbound>
    <on-error>
        <base />
    </on-error>
</policies>

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