■ はじめに
https://dk521123.hatenablog.com/entry/2024/05/09/144826
で、Confluent の REST API を試したいのだが、 まだ開発環境が用意できない状況だったのだが 調査する過程で、どうやらDockerでローカル上で 簡単に試せそうだったので、実際にやってみた
元ネタ
以下の公式サイトで紹介されている 『Confluent Admin REST APIs demo』を試した感じ
https://docs.confluent.io/ja-jp/platform/7.1/kafka-rest/api.html#rest-api-usage-examples-curl
より抜粋 ~~~~~~~~~~~~~~~~ ! ちなみに ----- アプリの場合に同じ API をソースコードから呼び出す方法については、 『Confluent Admin REST APIs demo』を参照してください。 ~~~~~~~~~~~~~~~~
https://github.com/confluentinc/demo-scene/tree/master/adminrest
目次
【1】Confluent の Local環境構築 1)前提条件 2)構築手順例 【2】動作確認 1)Browser上でHello world 2)REST API を実行してみる 【3】後片付け
【1】Confluent の Local環境構築
1)前提条件
* ローカル環境上に以下が設定されていること + docker + jq (Optional)
2)構築手順例
# Step1: Git cloneでデモサイトをダウンロード git clone https://github.com/confluentinc/demo-scene.git # Step2: 『Confluent Admin REST APIs demo』に移動 cd ./demo-scene/adminrest # Step3: Dockerコンテナを構築する docker compose up -d
【2】動作確認
* 軽く動かしてみる
1)Browser上でHello world
* 以下を見ながらやった方がいいかも、、、キャプチャーもあるので。
https://github.com/confluentinc/demo-scene/tree/master/adminrest
[1] Main画面を表示
* ブラウザで以下にアクセスする
[2] Topic作成
1) 「New topic ...」リンクを押下 2) 以下を入力し「Create topic」ボタン押下 + Topic name: 任意の文字列 (e.g. test_topic) + Partitions count: 任意の数字 (e.g. 1) + Replication factor: 任意の数字 (e.g. 1) => Main画面に戻ってきて、Topic名(e.g. test_topic)のリンクができているはず
2)REST API を実行してみる
* Confluent の REST API については、以下の関連記事を参照のこと
Confluent ~ REST API ~
https://dk521123.hatenablog.com/entry/2024/05/09/144826
[1] Kafka cluster ID を取得する
# 以下を参考に、Kafka cluster ID を取得する # Kafka クラスタ一覧表示 curl --silent -X GET http://localhost:8090/kafka/v3/clusters | jq ... # Kafka クラスタIDを取得する curl --silent -X GET http://localhost:8090/kafka/v3/clusters | jq -r '.data[] | .cluster_id' pKO9j-l2Tw-NWDWriD0E3g # ついでに、個別実行も試してみる curl --silent -X GET http://localhost:8090/kafka/v3/clusters/pKO9j-l2Tw-NWDWriD0E3g | jq
[2] REST API を使ってTopic作成
curl -H 'Content-Type: application/json' \ --request POST --url 'http://localhost:8090/kafka/v3/clusters/pKO9j-l2Tw-NWDWriD0E3g/topics' \ -d '{"topic_name": "demo_db.demo_schema.demo_topic1", "partitions_count": 1, "replication_factor": 1}'
[3] Topic一覧を表示する
$ curl --silent -X GET http://localhost:8090/kafka/v3/clusters/pKO9j-l2Tw-NWDWriD0E3g/topics | jq -r '.data[] | .topic_name' _confluent-license _confluent-metrics _confluent-telemetry-metrics _confluent_balancer_api_state _confluent_balancer_broker_samples _confluent_balancer_partition_samples demo_db.demo_schema.demo_topic1 ・・・ # システム内部で使っているTopic(_で始まるTopic)は、省く $ curl --silent -X GET http://localhost:8090/kafka/v3/clusters/pKO9j-l2Tw-NWDWriD0E3g/topics | jq -r '.data[] | select(.name | startswith("_") | not) | .topic_name'
【3】後片付け
# /demo-scene/adminrest 配下で、、、 # 停止 docker compose down # 確認 docker ps # docker image一覧表示 $ docker images confluentinc/cp-server 6.0.0 0dxxxxxxxxx 2 years ago 1.24GB confluentinc/cp-zookeeper 6.0.0 08xxxxxxxxx 2 years ago 721M # docker image削除 # docker image rm <image-id> $ docker image rm 0dxxxxxxxxx $ docker image rm 08xxxxxxxxx # 全部削除していいなら # docker rmi $(docker images -q)
関連記事
Confluent ~ REST API ~
https://dk521123.hatenablog.com/entry/2024/05/09/144826
Confluent ~ Confluent CLI ~
https://dk521123.hatenablog.com/entry/2024/05/12/000159
Apache Kafka ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2023/04/26/103421
Apache Kafka ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/05/01/000000
Apache Kafka ~ Kafkaコマンド ~
https://dk521123.hatenablog.com/entry/2023/05/16/000000
Kafka Connect ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2023/04/29/185133
Kafka Connect ~ Rest API ~
https://dk521123.hatenablog.com/entry/2023/05/31/000000
curl コマンド
https://dk521123.hatenablog.com/entry/2017/12/05/233100
jq コマンド ~ JSON を扱う ~
https://dk521123.hatenablog.com/entry/2020/02/01/000000