使用输出绑定调用不同的资源

使用 Dapr 输出绑定调用外部系统

使用绑定,可以调用外部资源,而无需绑定到特定的 SDK 或库。 有关显示输出绑定的完整示例,请访问此 链接

观看如何使用双向输出绑定的 视频

1. 1. 创建绑定

输出绑定表示 Dapr 将使用调用和向其发送消息的资源。

就本指南的目的,您将使用 Kafka 绑定。 您可以在 此处 找到不同绑定规范的列表。

创建一个新的名称为 myevent 的绑定组件。

metadata 部分中,配置 Kafka 相关属性,如要将消息发布到其的topics和代理。

创建以下 YAML 文件,名为 binding.yaml,并将其保存到应用程序的 components 子文件夹中。 (使用具有 --components-path 标记 的 dapr run 命令来指向自定义组件目录)

  1. apiVersion: dapr.io/v1alpha1
  2. kind: Component
  3. metadata:
  4. name: myevent
  5. namespace: default
  6. spec:
  7. type: bindings.kafka
  8. version: v1
  9. metadata:
  10. - name: brokers
  11. value: localhost:9092
  12. - name: publishTopic
  13. value: topic1

要将其部署到 Kubernetes 群集中,请为你想要的 绑定 组件 在下面的 yaml metadata 中填写链接详情,保存为 binding.yaml(在这里为kafka),然后运行 kubectl apply -f binding.yaml

  1. apiVersion: dapr.io/v1alpha1
  2. kind: Component
  3. metadata:
  4. name: myevent
  5. namespace: default
  6. spec:
  7. type: bindings.kafka
  8. version: v1
  9. metadata:
  10. - name: brokers
  11. value: localhost:9092
  12. - name: publishTopic
  13. value: topic1

2. 2. 发送事件

注: 在 Kubernetes 中运行时,使用 kubectl apply -f binding.yaml 将此文件应用于您的集群

您可以使用 HTTP 来这样做:

  1. curl -X POST -H 'Content-Type: application/json' http://localhost:3500/v1.0/bindings/myevent -d '{ "data": { "message": "Hi!" }, "operation": "create" }'

如上文所见,您使用了要调用的绑定的名称来调用 /binding 终结点。 在我们的示例中,它的名称是 myevent 。 有效载荷位于必需的 data 字段中,并且可以是任何 JSON 可序列化的值。

您还会注意到,有一个 operation 字段告诉绑定您需要它执行的操作。 您可以查看 这里 查看每个输出绑定都支持的操作。

参考资料