RedisStreamSourceの作成¶
このトピックでは、RedisStreamSource
オブジェクトの作成方法について説明します。
RedisStreamSourceアドオンのインストール¶
RedisStreamSource
は、Knative Eventingのアドオンです。
-
以下のコマンドを実行して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ストリームソースの詳細については、
eventing-redis
GitHubリポジトリを参照してください。