【Kafka】Confluent ~ Confluent CLI ~

■ はじめに

https://dk521123.hatenablog.com/entry/2024/05/09/144826

で、REST API によって、Confluent の Topic を作成する予定だったが
ひょっとしたら、Confluent CLI で行う可能性がでてきたので、調べてみた

目次

【1】Confluent CLI
【2】インストール
 1)前提条件
 2)インストール方法
【3】Confluent CLI 接続の下準備
 1)前提条件
 2)設定手順
【4】CLIリファレンス
 1)confluent environment
 2)confluent api-key
 3)confluent kafka

【1】Confluent CLI

* Confluent の様々なリソースをコマンドラインベースで操作する
* サブコマンドが豊富、、、

https://docs.confluent.io/ja-jp/confluent-cli/2.4/command-reference/index.html

【2】インストール

* 以下の公式ドキュメントに詳しく載っている

https://docs.confluent.io/ja-jp/confluent-cli/2.4/install.html

1)前提条件

* JDK8 or 11

https://docs.confluent.io/ja-jp/confluent-cli/2.4/install.html#java-versions

2)インストール方法

* 以下の2点。

[1] スクリプトによるインストール
https://docs.confluent.io/ja-jp/confluent-cli/2.4/install.html#scripted-installation

# Step0: [Optional] 使用可能バージョンの表示
curl -sL --http1.1 https://cnfl.io/cli | sh -s -- -l

# Step1: 最新バージョンでのインストール
curl -sL --http1.1 https://cnfl.io/cli | sh -s -- latest
# [Version指定]
# curl -sL --http1.1 https://cnfl.io/cli | sh -s -- -b <path-to-cli> v<version>
# curl -sL --http1.1 https://cnfl.io/cli | sh -s -- -b /usr/local/bin v2.4.0

# Step2: ダウンロードしたディレクトリを PATH 環境変数に設定
export PATH=$(pwd)/bin:$PATH
# export PATH=<path-to-cli>:$PATH

[2] Tarball または Zip によるインストール
https://docs.confluent.io/ja-jp/confluent-cli/2.4/install.html#tarball-or-zip-installation

# Step1: ダウンロード
# curl -OL {ダウンロードするURL}
$ curl -OL https://s3-us-west-2.amazonaws.com/confluent.cloud/confluent-cli/archives/latest/confluent_latest_linux_amd64.tar.gz

# Step2: インストール
$ tar -xzf confluent_latest_linux_amd64.tar.gz
$ ls
confluent < があるはず

$ sudo mv confluent /usr/local/bin/

# Step3: Path を通す (下記の関連記事「Linux ~ 環境変数あれこれ ~」を参照)
vi ~/.bash_profile
~~~~~~~~~~~
# Add /usr/local/bin/confluent:
export PATH=/usr/local/bin/confluent/:$PATH
~~~~~~~~~~~
source ~/.bash_profile

# Step4: 確認
confluent --version
# confluent version v3.61.0

Linux環境変数あれこれ ~
https://dk521123.hatenablog.com/entry/2015/07/16/103501

【3】Confluent CLI 接続の下準備

* 以下の公式ドキュメントに記載されている

https://docs.confluent.io/ja-jp/confluent-cli/2.4/connect.html

1)前提条件

* Confluent Cloud で有効な ユーザーアカウント を持っている必要がある

2)設定手順

# Step1: confluent login コマンドを使用してクラスターにログイン
$ confluent login

# Step2: Confluent Cloud 環境 を設定
## 2-1) 環境 ID を取得
$ confluent environment list
     Id    |      Name
+----------+----------------+
  * a-542  | dev
    a-4985 | prod
    a-2345 | jdoe-gcp-env
    a-9012 | jdoe-aws-env

## 2-2) ID(<env-id>)を使用して環境を設定
# confluent environment use <env-id>
$ confluent environment use  a-4985

# Step3: 使用するクラスターを設定
## 3-1) クラスター ID を取得
$ confluent kafka cluster list
      Id      |       Name        | Provider |   Region    | Durability | Status
+-------------+-------------------+----------+-------------+------------+--------+
    ekg-rr8v7 | dev-aws-oregon    | aws      | us-west-2   | LOW        | UP

## 3-2) API キーとシークレットを作成
# confluent api-key create --resource <resource-id>
$ confluent api-key create --resource ekg-rr8v7
Save the API key and secret. The secret is not retrievable later.
+---------+------------------------------------------------------------------+
| API Key | LD35EM2YJTCTRQRM                                                 |
| Secret  | 67JImN+9vk+Hj3eaj2/UcwUlbDNlGGC3KAIOy5JNRVSnweumPBUpW31JWZSBeawz |
+---------+------------------------------------------------------------------+

## 3-3) API キーとシークレットを保存
# confluent api-key store <api-key> <api-secret> --resource <resource-id>
$ confluent api-key store LD35EM2YJTCTRQRM 67JImN+9vk+Hj3eaj2/UcwUlbDNlGGC3KAIOy5JNRVSnweumPBUpW31JWZSBeawz --resource ekg-rr8v7

## 3-4) API キーの選択
# confluent api-key use <api-key> --resource <resource-id>
$ confluent api-key use LD35EM2YJTCTRQRM --resource ekg-rr8v7

【4】CLIリファレンス

* 以下の公式リファレンスから辿るといい。

https://docs.confluent.io/ja-jp/confluent-cli/2.4/command-reference/index.html

1)confluent environment

* Confluent Cloud 環境を管理

https://docs.confluent.io/ja-jp/confluent-cli/2.4/command-reference/environment/index.html#description

# Confluent Cloud 環境を一覧表示
confluent environment list [flags]

https://docs.confluent.io/ja-jp/confluent-cli/2.4/command-reference/environment/confluent_environment_list.html#confluent-environment-list

# 指定した Confluent Cloud 環境に切り替え
confluent environment use <id> [flags]

https://docs.confluent.io/ja-jp/confluent-cli/2.4/command-reference/environment/confluent_environment_use.html#confluent-environment-use

[1] confluent environment list

# onfluent Cloud 環境を一覧表示
confluent environment list [flags]

https://docs.confluent.io/ja-jp/confluent-cli/2.4/command-reference/environment/confluent_environment_list.html#confluent-environment-list

2)confluent api-key

* API キーを管理

https://docs.confluent.io/ja-jp/confluent-cli/2.4/command-reference/api-key/index.html#confluent-api-key

[1] confluent api-key create

* 指定したリソースに API キーを作成

https://docs.confluent.io/ja-jp/confluent-cli/2.4/command-reference/api-key/confluent_api-key_create.html#confluent-api-key-create

confluent api-key create [flags]

# クラスター "lkc-123456" へのフルアクセス権限を持つ API キーを作成
confluent api-key create --resource lkc-123456

[2] confluent api-key store

* 別のプロセスで作成された API シークレットを登録し、ローカルで保管する場合に使用

https://docs.confluent.io/ja-jp/confluent-cli/2.4/command-reference/api-key/confluent_api-key_store.html

confluent api-key store [api-key] [secret] [flags]

[3] confluent api-key use

* アクティブな API キーを設定

https://docs.confluent.io/ja-jp/confluent-cli/2.4/command-reference/api-key/confluent_api-key_use.html

confluent api-key use <api-key> [flags]

1)confluent kafka

* Apache Kafka を操作

https://docs.confluent.io/ja-jp/confluent-cli/2.4/command-reference/kafka/index.html

[1] confluent kafka cluster

* Kafka クラスターを管理

https://docs.confluent.io/ja-jp/confluent-cli/2.4/command-reference/kafka/cluster/index.html#confluent-kafka-cluster

# Kafka クラスターを一覧表示
confluent kafka cluster list [flags]

confluent kafka cluster list --output "json" | jq

https://docs.confluent.io/ja-jp/confluent-cli/2.4/command-reference/kafka/cluster/confluent_kafka_cluster_list.html#confluent-kafka-cluster-list

[2] confluent kafka topic
https://docs.confluent.io/ja-jp/confluent-cli/2.4/command-reference/kafka/topic/index.html#confluent-kafka-topic

# Topic作成
confluent kafka topic create <topic> [flags]

https://docs.confluent.io/ja-jp/confluent-cli/2.4/command-reference/kafka/topic/confluent_kafka_topic_create.html

関連記事

Confluent ~ Local環境構築 ~
https://dk521123.hatenablog.com/entry/2024/05/10/000325
Confluent ~ REST API
https://dk521123.hatenablog.com/entry/2024/05/09/144826
Apache Kafka ~ 環境構築 / Linux編 ~
https://dk521123.hatenablog.com/entry/2024/02/05/153202
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
curl コマンド
https://dk521123.hatenablog.com/entry/2017/12/05/233100
jq コマンド ~ JSON を扱う ~
https://dk521123.hatenablog.com/entry/2020/02/01/000000
Linux環境変数あれこれ ~
https://dk521123.hatenablog.com/entry/2015/07/16/103501