发送对服务的请求

可用性

重要

此功能在 API 管理的“高级”和“开发人员”层中可用。

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 管理的集成

注意

按照策略声明中提供的顺序设置策略的元素和子元素。 详细了解如何设置或编辑 API 管理策略

策略语句

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

属性

属性 说明 需要 默认
backend-id 必须设置为“dapr”。 不适用
dapr-app-id 目标微服务的名称。 用于在 Dapr 中形成 appId 参数。 允许使用策略表达式。 不适用
dapr-method 要在目标微服务上调用的方法或 URL 的名称。 映射到 Dapr 中的 method-name 参数。 允许使用策略表达式。 不适用
dapr-namespace 目标微服务所驻留的命名空间的名称。 用于在 Dapr 中形成 appId 参数。 允许使用策略表达式。 空值

使用情况

使用注意事项

必须在自承载网关中启用 Dapr 支持。

示例

下面的示例演示如何在名为“echo”的微服务上调用名为“back”的方法。 set-backend-service 策略将目标 URL 设置为 http://localhost:3500/v1.0/invoke/echo.echo-app/method/backforward-request 策略将请求分派到 Dapr 运行时,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>

后续步骤

有关使用策略的详细信息,请参阅: