跳到内容

创建自定义事件源

如果要为特定的事件生产者类型创建自定义事件源,则必须创建组件,以使事件能够从该生产者类型转发到 Knative Sink。

此类集成比使用某些更简单的集成类型(例如 SinkBindingContainerSource)需要更多的努力;然而,这提供了最完善的结果,并且是用户最容易使用的集成类型。通过为您的源提供自定义资源定义 (CRD),而不是通用的容器定义,可以更轻松地向用户公开有意义的配置选项和文档,并隐藏实现细节。

注意

如果您创建了一种不属于核心 Knative 项目的新事件源类型,您可以打开一个 pull request 将其添加到 第三方源 列表中,并在 #knative-eventing Slack 频道 中宣布新的源。

您还可以通过遵循创建扩展存储库的说明,将您的事件源添加到 knative-extensions 组织中。

所需组件

要创建自定义事件源,您必须创建以下组件

组件 描述
接收适配器 (Receive adapter) 包含指定如何从生产者获取事件、Sink URI 是什么以及如何将事件转换为 CloudEvent 格式的逻辑。
Kubernetes 控制器 (Kubernetes controller) 管理事件源并协调底层的接收适配器部署。
自定义资源定义 (CRD) 提供控制器用于管理接收适配器的配置。

使用示例源

Knative 项目提供了一个示例存储库,其中包含一个基本事件源控制器和一个接收适配器的模板。

有关使用示例源的更多信息,请参阅文档

额外资源

  • 实现 CloudEvent 绑定接口,cloudevent 的 go sdk 提供了用于标准访问以根据需要配置接口的库。

  • Controller runtime(我们通过注入共享的内容)将协议特定的配置合并到“通用控制器”CRD 中。

我们使用分析和 cookie 来了解网站流量。有关您使用我们网站的信息会与 Google 共享以达到此目的。了解更多。