触发器输出绑定
可用性
重要
此功能在 API 管理的“高级”和“开发人员”层中可用。
invoke-dapr-binding
策略指示 API 管理网关触发出站 Dapr 绑定。 策略通过向 http://localhost:3500/v1.0/bindings/{{bind-name}},
发出 HTTP POST 请求、替换模板参数并添加策略语句中指定的内容来实现这一点。
策略假设 Dapr 运行时正在网关所在的 pod 中的 sidecar 容器中运行。 Dapr 运行时负责调用绑定表示的外部资源。 详细了解 Dapr 与 API 管理的集成。
注意
按照策略声明中提供的顺序设置策略的元素和子元素。 详细了解如何设置或编辑 API 管理策略。
策略语句
<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 中的已定义的绑定名称匹配。 允许使用策略表达式。 | 是 | 不适用 |
operation | 目标操作名称(特定于绑定)。 映射到 Dapr 中的操作属性。 不允许使用策略表达式。 | 否 | 无 |
ignore-error | 如果设置为 true ,则指示策略在收到来自 Dapr 运行时的错误时不触发“on error”部分。 不允许使用策略表达式。 |
否 | false |
response-variable-name | 用于存储来自 Dapr 运行时的响应的变量集合项的名称。 不允许使用策略表达式。 | 否 | 无 |
timeout | 等待 Dapr 运行时做出响应的时间(以秒为单位)。 范围为 1 到 240 秒。 允许使用策略表达式。 | 否 | 5 |
template | 用于转换消息内容的模板引擎。 “Liquid”是唯一支持的值。 | 否 | 无 |
content-type | 消息内容的类型。 “application/json”是唯一支持的值。 | 否 | 无 |
元素
元素 | 说明 | 必须 |
---|---|---|
metadata | 以键/值对的形式绑定特定的元数据。 映射到 Dapr 中的元数据属性。 | 否 |
数据 | 消息的内容。 映射到 Dapr 中的数据属性。 允许使用策略表达式。 | 否 |
使用情况
使用注意事项
必须在自承载网关中启用 Dapr 支持。
示例
下面的示例演示了如何触发名为“external-systems”的出站绑定,其操作名为“create”,元数据由两个名为“source”和“client-ip”的键/值项组成,并且主体来自原始请求。 从 Dapr 运行时接收到的响应在 context 对象的“变量”集合的“bind-response”项中捕获。
如果 Dapr 运行时由于某种原因而失败并返回错误,则会触发“on-error”部分,并且从 Dapr 运行时收到的响应会逐字返回给调用方。 否则,返回默认的 200 OK
响应。
“backend”部分为空,请求不会转发到后端。
<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
- 策略参考,其中提供了策略语句及其设置的完整列表
- 策略表达式
- 设置或编辑策略
- 策略示例