创建 RedisStreamSource¶
本主题介绍如何创建 RedisStreamSource
对象。
安装 RedisStreamSource 附加组件¶
RedisStreamSource
是 Knative 事件的附加组件。
-
通过运行以下命令安装 RedisStreamSource
kubectl apply -f https://github.com/knative-extensions/eventing-redis/releases/download/knative-v1.16.0/redis-source.yaml
-
验证
redis-controller-manager
是否正在运行kubectl get deployments.apps -n knative-sources
示例输出
NAME READY UP-TO-DATE AVAILABLE AGE redis-controller-manager 1/1 1 1 3s
创建服务¶
-
以 YAML 文件的形式创建
event-display
服务apiVersion: serving.knative.dev/v1 kind: Service metadata: name: event-display namespace: default spec: template: spec: containers: - # This corresponds to # https://github.com/knative/eventing/tree/main/cmd/event_display/main.go image: gcr.io/knative-releases/knative.dev/eventing/cmd/event_display
-
通过运行以下命令应用 YAML 文件
其中kubectl apply -f <filename>.yaml
<filename>
是您在上一步中创建的文件的名称。示例输出
service.serving.knative.dev/event-display created
-
通过运行以下命令确保服务 Pod 正在运行
kubectl get pods
Pod 名称以
event-display
为前缀NAME READY STATUS RESTARTS AGE event-display-00001-deployment-5d5df6c7-gv2j4 2/2 Running 0 72s
创建 RedisStreamSource 对象¶
- 使用下面的 YAML 模板创建
RedisStreamSource
对象
apiVersion: sources.knative.dev/v1alpha1
kind: RedisStreamSource
metadata:
name: <redis-stream-source>
spec:
address: <redis-uri>
stream: <redis-stream-name>
group: <consumer-group-name>
sink: <sink>
其中
<redis-stream-source>
是您源的名称。(必需)<redis-uri>
是 Redis URI。有关详细信息,请参阅 Redis 文档。(必需)<redis-stream-name>
是 Redis 流的名称。(必需)<consumer-group-name>
是 Redis 消费者组的名称。如果为空,则会自动为该源创建一个组,并在删除该源时将其删除。(可选)-
<sink>
是发送事件的位置。(必需) -
通过运行以下命令应用 YAML 文件
kubectl apply -f <filename>
其中
<filename>
是您在上一步中创建的文件的名称。
验证 RedisStreamSource 对象¶
-
通过运行以下命令查看
event-display
事件消费者的日志kubectl logs -l app=event-display --tail=100
示例输出
☁️ cloudevents.Event Validation: valid Context Attributes, specversion: 1.0 type: dev.knative.sources.redisstream source: /mystream id: 1597775814718-0 time: 2020-08-18T18:36:54.719802342Z datacontenttype: application/json Data, [ "fruit", "banana" "color", "yellow" ]
删除 RedisStreamSource 对象¶
-
删除
RedisStreamSource
对象kubectl delete -f <filename>
其他信息¶
- 有关 Redis Stream 源的更多信息,请参阅
eventing-redis
Github 仓库