Knativeにおけるイベント検出の改善による開発者エクスペリエンスの向上 ¶
公開日:2023-08-01、改訂日:2024-01-24
Knativeにおけるイベント検出の改善による開発者エクスペリエンスの向上¶
著者:David Simansky、Red Hatシニアソフトウェアエンジニア、Matthias Weßendorf、Red Hatシニアプリンシパルソフトウェアエンジニア
このブログ投稿では、イベント検出に関するKnative Eventingの新しい機能強化について学習します。
イベント検出は、システムダイナミクスと消費するイベントを開発者がよりよく理解できるようにするため、イベント駆動型アプリケーションの重要な部分です。より効率的で堅牢なアプリケーション設計を可能にします。
KnativeイベントタイプAPIの強化¶
Knative Eventingの最新の1.11リリースでは、イベント検出の改善に関連するいくつかの改善が行われました。
EventType
APIがv1beta2
にアップグレード- ブローカーだけでなく、チャネルやシンクのような任意のリソースを指す
reference
の使用 - ブローカーだけでなく、任意のバインディングに対してイベントタイプを作成する組み込みソースの強化。
- ブローカーとチャネルの自動イベントタイプ作成
EventType APIの変更とバージョンアップ¶
数年間v1beta1
バージョンであった後、KnativeのEventType
APIが変更され、v1beta2
にアップグレードされました。バージョンアップは単独では行われず、開発者エクスペリエンスの向上のためのオーバーホールと組み合わされました。ブローカーオブジェクトのみに制限されるのではなく、イベントタイプオブジェクトから任意のリソースを指すことが可能になりました。
その他のリソースへの参照¶
新しいバージョンでは、broker
フィールドが非推奨としてマークされており、将来のリリースで削除されます。代わりに、任意のKReference
APIタイプを指定できるreference
フィールドが導入され、シンク、チャネル、ブローカーを指すことができます。新しいEventType
オブジェクトを見てみましょう。
apiVersion: eventing.knative.dev/v1beta2
kind: EventType
metadata:
name: dev.knative.source.github.push-sss34cnb
namespace: default
spec:
type: dev.knative.source.github.push
source: https://github.com/knative/eventing
reference:
apiVersion: messaging.knative.dev/v1
kind: InMemoryChannel
name: testchannel
ステータスも変更されました。参照が存在するだけで十分になり、準備完了である必要がなくなりました。
ダックソース¶
上記の強化により、組み込みソース、またはソースダックタイプに準拠する任意のソースに対する追加の変更が可能になりました。たとえば、以前のリリースでは、上記の制限のため、ソースがブローカーを指している場合にのみEventType
オブジェクトが自動的に作成されていました。現在、ソース上の参照されているシンクのように、任意の参照されたシンクに対してそれらが作成されます。
apiVersion: sources.knative.dev/v1
kind: PingSource
metadata:
name: ping-source-broker2
spec:
schedule: "*/1 * * * *"
data: '{"message": "Hello world!"}'
sink:
ref:
apiVersion: v1
kind: Service
name: log-receiver
これにより、次のような自動作成されたイベントタイプが生成されます。
k get eventtypes.eventing.knative.dev -A
NAMESPACE NAME TYPE SOURCE SCHEMA REFERENCE NAME REFERENCE KIND DESCRIPTION READY REASON
default 93774a924a741245a94313745d78e69f dev.knative.sources.ping /apis/v1/namespaces/default/pingsources/ping-source-broker2 log-receiver Service True
自動イベントタイプ作成¶
さらに、EventTypes
の消費と作成のエクスペリエンスを向上させるため、ブローカーイングレスとインメモリーチャネルで処理されたイベントに基づいてEventTypes
オブジェクトを自動的に作成する新しい実験的機能があります。ブローカーまたはチャネルAPIと通信するアプリケーションコードと共にYAMLマニフェストを手動で作成する代わりに、この動作はconfig-features
ConfigMapの機能フラグeventtype-auto-creation
で有効にできます。詳細と例については、ドキュメントを参照してください。
結論¶
このブログ投稿では、EventType
検出機能の新しい機能と改善点を紹介しました。主な目的は、イベント駆動型アプリケーションへの開発者の洞察を強化し、検出を容易にし、開発をスピードアップすることです。
私たちはコミュニティからEventType
APIと検出機能をさらに強化することを期待しています。CNCF Slackの#knative-eventingまたはGitHubのissueにご連絡ください。