发送对服务的请求
可用性
重要
此功能在 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/back
。 forward-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>
相关策略
后续步骤
有关使用策略的详细信息,请参阅:
- 教程:转换和保护 API
- 策略参考,其中提供了策略语句及其设置的完整列表
- 策略表达式
- 设置或编辑策略
- 策略示例