コンテンツへスキップ

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にご連絡ください。

サイトトラフィックを理解するために、アナリティクスとCookieを使用しています。当社のサイトの使用に関する情報は、その目的でGoogleと共有されます。詳細はこちら。