はじめに
コミット
62b10c7(タグ0.10.0から 18 コミット先) のソースで検証済み。コマンドはkubectlで到達できる Kubernetes クラスタと、curlの使えるシェルを想定する。
前提
kubectlの現在のコンテキストに設定された Kubernetes クラスタ。Drasi はそこにコンポーネントをインストールする。- CLI インストーラを取得する
curl(またはwget)。インストーラは GitHub からリリースバイナリをダウンロードする (cli/installers/install-drasi-cli.sh)。 drasi initの間に Drasi のコンテナイメージを pull するためのネットワークアクセス。
インストール
Drasi は drasi CLI を通して使う。リポジトリには、対応するリリースバイナリを /usr/local/bin にダウンロードするインストーラスクリプトが同梱されている (cli/installers/install-drasi-cli.sh:15, install-drasi-cli.sh:117)。
curl -fsSL https://raw.githubusercontent.com/drasi-project/drasi-platform/main/cli/installers/install-drasi-cli.sh | /bin/bashCLI を用意したら、現在の kubectl コンテキストであるクラスタに Drasi プラットフォームをインストールする。drasi init がインストールコマンドである (cli/cmd/init.go)。
drasi init最初の動く構成
最短の動く経路は、Source と Continuous Query、そしてクエリ出力を表示する Reaction である。リポジトリにはこの形に沿った例のリソースが cli/ の下にある (cli/test-source.yaml, cli/test-query.yaml)。
変更を観測したいシステムに接続する Source を apply する。PostgreSQL Source は監視するテーブルを指定する (
cli/test-source.yaml)。drasi applyはリソースを作成・更新する (cli/cmd/apply.go)。bashdrasi apply -f source.yaml何を観測するかを定義する Continuous Query を apply する。クエリは Cypher で、id で Source を購読し、出力の形を返す (
cli/test-query.yaml)。yamlkind: ContinuousQuery apiVersion: v1 name: query1 spec: mode: query sources: subscriptions: - id: foo query: > MATCH (i:Item {Category: '1'}) RETURN i.ItemId AS Id, i.Name as Name, i.Category as Categorybashdrasi apply -f query.yaml出力を観測する Reaction を apply する。チュートリアルは、クエリが追加・更新・削除する行を表示するデバッグ Reaction を使う。
bashdrasi apply -f reaction.yaml
動作確認
Drasi が管理しているリソースを一覧し、クエリが動いていることを確認する。
drasi list query続いてクエリを describe して、その状態と現在の結果集合を見る (cli/cmd/describe.go)。
drasi describe query query1ソーステーブルでクエリのパターン (ここでは Category が 1 の Item) にマッチする行を変更すると、デバッグ Reaction が対応する追加・更新・削除の結果を表示する。drasi describe が正常な状態を示していれば、Source はブートストラップ済みで、クエリがライブの変更を評価している。
次に読むもの
公式の Getting Started チュートリアルは、Source・Continuous Query・デバッグ Reaction の一連の流れを Kubernetes 上で歩く (https://drasi.io/drasi-kubernetes/getting-started/)。ドキュメントサイト (https://drasi.io/) は、プリビルトの Source と Reaction、Continuous Query 言語、本番運用の how-to ガイドをカバーする。カスタム統合については、Source と Reaction の SDK がリポジトリの sources/sdk と reactions/sdk にある。