事件源¶
事件源是 Kubernetes 自定义资源 (CR),由开发人员或集群管理员创建,充当事件生产者和事件接收器之间的链接。接收器可以是 k8s 服务(包括 Knative 服务)、通道或接收来自事件源事件的代理。
事件源是通过从 Source 对象实例化 CR 来创建的。Source 对象定义了实例化 CR 所需的参数和参数。
所有 Source 都属于sources
类别。
您可以通过输入 kn 命令来列出集群中现有的事件源
kn source list
您可以通过输入以下命令来列出集群中现有的事件源
kubectl get sources
注意
从 Kafka 或 RabbitMQ 等其他消息传递技术导入事件的事件源不负责设置可选属性,如datacontenttype
。这是原始事件生产者的责任;Source 仅在存在属性时追加属性。
Knative 源¶
名称 | 状态 | 维护者 | 描述 |
---|---|---|---|
APIServerSource | 稳定版 | Knative | 将 Kubernetes API 服务器事件引入 Knative。APIServerSource 在每次创建、更新或删除 Kubernetes 资源时都会触发一个新事件。 |
Apache CouchDB | Alpha 版 | Knative | 将 Apache CouchDB 消息引入 Knative。 |
Apache Kafka | 稳定版 | Knative | 将 Apache Kafka 消息引入 Knative。KafkaSource 从 Apache Kafka 集群中读取事件,并将这些事件传递到接收器,以便可以消费这些事件。有关更多详细信息,请参阅 Kafka Source 示例。 |
CephSource | Beta 版 | Knative | Ceph 源将桶通知从 Ceph 格式 转换为 CloudEvents 格式,并将它们注入到 Knative 中。转换逻辑遵循为 AWS S3 桶通知所述的逻辑。 |
ContainerSource | 稳定版 | Knative | ContainerSource 实例化容器镜像,这些容器镜像可以生成事件,直到 ContainerSource 被删除。这可用于例如轮询 FTP 服务器以获取新文件或按设定的时间间隔生成事件。给定一个至少指定了容器镜像的spec.template ,ContainerSource 会使用指定的镜像运行一个 Pod。K_SINK (目标地址)和KE_CE_OVERRIDES (JSON CloudEvents 属性)环境变量被注入到正在运行的镜像中。它被多个其他源用作底层基础设施。有关更多详细信息,请参阅 Container Source 示例。 |
GitHub | Beta 版 | Knative | 注册指定 GitHub 组织或存储库中指定类型的事件,并将这些事件引入 Knative。GitHubSource 为选定的 GitHub 事件类型 触发一个新事件。有关更多详细信息,请参阅 GitHub Source 示例。 |
GitLab | Beta 版 | Knative | 注册指定 GitLab 存储库中指定类型的事件,并将这些事件引入 Knative。GitLabSource 为指定的 事件类型 创建 Webhook,监听传入的事件,并将它们传递给消费者。有关更多详细信息,请参阅 GitLab Source 示例。 |
KogitoSource | Alpha 版 | Knative | 对 Kogito 运行时 自定义资源的实现,由 Kogito 运算符 管理。 |
PingSource | 稳定版 | Knative | 根据指定的 Cron 计划生成具有固定有效负载的事件。有关更多详细信息,请参阅 Ping Source 示例。 |
RabbitMQ | 稳定版 | Knative | 将 RabbitMQ 消息引入 Knative。 |
RedisSource | Beta 版 | Knative | 将 Redis 流引入 Knative。 |
SinkBinding | 稳定版 | Knative | SinkBinding 可用于使用 Kubernetes 提供的任何熟悉的计算抽象(例如 Deployment、Job、DaemonSet、StatefulSet)或 Knative 抽象(例如 Service、Configuration)创作新的事件源。SinkBinding 提供了一个框架,可以将K_SINK (目标地址)和K_CE_OVERRIDES (JSON cloudevents 属性)环境变量注入到任何 Kubernetes 资源中,这些资源的spec.template 类似于 Pod(又名 PodSpecable)。有关更多详细信息,请参阅 SinkBinding 示例。 |
第三方源¶
名称 | 状态 | 维护者 | 描述 |
---|---|---|---|
Amazon CloudWatch | 稳定版 | TriggerMesh | 收集来自 Amazon CloudWatch 的指标。(安装)(示例) |
Amazon CloudWatch Logs | 稳定版 | TriggerMesh | 订阅来自 Amazon CloudWatch Logs 流的日志事件。(安装)(示例) |
AWS CodeCommit | 稳定版 | TriggerMesh | 注册由 AWS CodeCommit 源代码存储库发出的事件。(安装)(示例) |
Amazon Cognito Identity | 稳定版 | TriggerMesh | 注册来自 Amazon Cognito 身份池的事件。(安装)(示例) |
Amazon Cognito User | 稳定版 | TriggerMesh | 注册来自 Amazon Cognito 用户池的事件。(安装)(示例) |
Amazon DynamoDB | 稳定版 | TriggerMesh | 从 Amazon DynamoDB 流中读取记录。(安装)(示例) |
Amazon Kinesis | 稳定版 | TriggerMesh | 从 Amazon Kinesis 流中读取记录。(安装)(示例) |
Amazon S3 | 稳定版 | TriggerMesh | 订阅来自 Amazon S3 桶的事件通知。(安装)(示例) |
Amazon SNS | 稳定版 | TriggerMesh | 订阅来自 Amazon SNS 主题的消息。(安装)(示例) |
Amazon SQS | 稳定版 | TriggerMesh | 从 Amazon SQS 队列中消费消息。(安装)(示例) |
Apache Camel | 稳定版 | Apache 软件基金会 | 使使用 Apache Camel 组件将事件推送到 Knative 成为可能。Camel 源现在通过 Kamelets 提供,作为 Apache Camel K 项目的一部分。 |
Azure 活动日志 | 稳定版 | TriggerMesh | 捕获来自 Azure 活动日志 的活动日志。(安装)(示例) |
Azure Blob 存储 | 稳定版 | TriggerMesh | 订阅来自 Azure Blob 存储 帐户的事件。(安装)(示例) |
Azure 事件网格 | 稳定版 | TriggerMesh | 从 Azure 事件网格 中检索事件。(安装)(示例) |
Azure 事件中心 | 稳定版 | TriggerMesh | 从 Azure 事件中心 中消费事件。(安装)(示例) |
Azure IoT 中心 | 稳定版 | TriggerMesh | 从 Azure IoT 中心 中消费事件。(安装)(示例) |
Azure 队列存储 | 稳定版 | TriggerMesh | 从 Azure 队列存储 中检索消息。(安装)(示例) |
Azure 服务总线队列 | 稳定版 | TriggerMesh | 从 Azure 服务总线 队列中消费消息。(安装)(示例) |
Azure 服务总线主题 | 稳定版 | TriggerMesh | 订阅来自Azure 服务总线 主题的消息。(安装) (示例) |
Debezium | Alpha 版 | Debezium | 将数据库更改作为 CloudEvents 在 Knative 中使用。(knative 配置) |
Direktiv | Alpha 版 | Direktiv | 从Direktiv 接收事件。 |
DockerHubSource | Alpha 版 | 无 | 从Docker Hub Webhook 获取事件,并将它们转换为 CloudEvents 以供 Knative 使用。 |
Google Cloud Audit Logs | 稳定版 | TriggerMesh | 捕获来自Google Cloud Audit Logs 的审计日志。(安装) (示例) |
Google Cloud Billing | 稳定版 | TriggerMesh | 捕获来自Google Cloud Billing 的预算通知。(安装) (示例) |
Google Cloud Pub/Sub | 稳定版 | TriggerMesh | 订阅来自Google Cloud Pub/Sub 主题的消息。(安装) (示例) |
Google Cloud Source Repositories | 稳定版 | TriggerMesh | 使用来自Google Cloud Source Repositories 的事件。(安装) (示例) |
Google Cloud Storage | 稳定版 | TriggerMesh | 捕获来自Google Cloud Storage 存储桶的更改通知。(安装) (示例) |
HTTP Poller | 稳定版 | TriggerMesh | 定期从 HTTP/S URL 拉取事件。(安装) (示例) |
Oracle Cloud Infrastructure | 稳定版 | TriggerMesh | 从Oracle Cloud Infrastructure 获取指标。(安装) (示例) |
Salesforce | 稳定版 | TriggerMesh | 使用来自Salesforce 渠道的事件。(安装) (示例) |
Slack | 稳定版 | TriggerMesh | 订阅来自Slack 的事件。(安装) (示例) |
Twilio | 支持 | TriggerMesh | 从Twilio 接收事件。(安装) (示例) |
VMware | Alpha 版 | VMware | 将vSphere 事件引入 Knative。 |
Webhook | 稳定版 | TriggerMesh | 使用 HTTP 从 webhook 获取事件。(安装) (示例) |
Zendesk | 稳定版 | TriggerMesh | 订阅来自 Zendesk 的事件。(安装) (示例) |
其他资源¶
- 如果您的代码需要在其业务逻辑中发送事件,并且不符合 Source 的模型,请考虑直接将事件发送到 Broker。
- 有关使用
kn
Source 相关命令的更多信息,请参阅kn source
参考文档。