■ はじめに
Amazon MSK Connect (Amazon Managed Streaming for Apache Kafka) の REST API について、調べていたのだが、 結局は、AWS CLIの方がいいといったこともあるので、そこらへんをメモ。
目次
【1】Amazon MSK の AWS CLI 1)MSK 2)MSK Connect 【2】サンプル 1)MSK 2)MSK Connect 【3】補足:Amazon MSK Connect の REST API 1)REST API一覧 2)使い方 3)サンプル
【1】Amazon MSK の AWS CLI
* 注意点としては、 サブコマンドが「msk/mskconnect」ではなく「kafka/kafkaconnect」
1)MSK
* aws kafka <sub-command> で管理できる
全API一覧
* 以下の公式ドキュメントを参照のこと。
https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/index.html
list-clusters / list-clusters-v2
* MSK cluster一覧を表示
https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/list-clusters.html
https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kafka/list-clusters-v2.html
describe-cluster
* Zookeeperへの接続に必要な ZookeeperConnectString が取得できる
構文
# <MSK cluster ARN> については、AWS Management ConsoleのMSK画面から取得可能 aws kafka describe-cluster --cluster-arn "<MSK cluster ARN>"
https://docs.aws.amazon.com/cli/latest/reference/kafka/describe-cluster.html
https://awscli.amazonaws.com/v2/documentation/api/2.1.30/reference/kafka/describe-cluster.html
get-bootstrap-brokers
* ブローカーへの接続に必要な BootstrapBrokerStringを取得する
構文
# <MSK cluster ARN> については、AWS Management ConsoleのMSK画面から取得可能 aws kafka get-bootstrap-brokers --cluster-arn "<MSK cluster ARN>"
https://docs.aws.amazon.com/cli/latest/reference/kafka/get-bootstrap-brokers.html
2)MSK Connect
* aws kafkaconnect <sub-command> で管理できる
全API一覧
* 以下の公式ドキュメントを参照のこと。
describe-connector
* MSK connector の詳細情報を取得
=> connectorState により、 Connectorの状況(Valid Values: RUNNING | CREATING | UPDATING | DELETING | FAILED)を取得可能
【2】サンプル
1)MSK
list-clusters / list-clusters-v2
aws kafka list-clusters aws kafka list-clusters-v2
describe-cluster
aws kafka describe-cluster \ --cluster-arn arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5 --region us-west-2
get-bootstrap-brokers
aws kafka get-bootstrap-brokers \ --cluster-arn arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5 { "BootstrapBrokerString": "b-1.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:9092,b-2.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:9092", "BootstrapBrokerStringTls": "b-1.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:9094,b-2.demo-cluster-1.xuy0sb.c5.kafka.us-east-1.amazonaws.com:9094" }
2)MSK Connect
describe-connector
# connector-arn = arn:aws:kafkaconnect:us-east-2:xxxx:connector/xxxx/xxx/xxxx の場合 aws kafkaconnect describe-connector --connector-arn arn:aws:kafkaconnect:us-east-2:xxxx:connector/xxxx/xxx/xxxx
【3】補足:Amazon MSK Connect の REST API
(ここからが裏テーマ) 始めは、Apache Kafka connect の REST API の流れで MSK Connect REAST APIを調べていたのだが AWS CLI でも全く同じことができ、なにより、 問題なくレスポンスが返ってくるEC2環境において、 実際に使用したら、権限エラー(※1)になった。 使い方が悪いのかもしれないが、AWS CLI の方が使い勝手がいいし、 それを調べる時間ももったいないので、AWS CLIを使うことにする
※1:エラー内容
{"Message": "Unable to determine service/operation name to be authorized" }
1)REST API一覧
https://docs.aws.amazon.com/ja_jp/MSKC/latest/mskc/API_Operations.html
https://docs.aws.amazon.com/pdfs/MSKC/latest/mskc/mskc-api.pdf
2)使い方
* Amazon MSK Connect エンドポイント(※2) に対して 上記のAmazon MSK Connect の REST APIに対して、リクエストを送る
※2:Amazon MSK Connect エンドポイント
https://docs.aws.amazon.com/ja_jp/general/latest/gr/msk-connect.html
* 例えば、「us-east-2」の場合 => kafkaconnect.us-east-2.amazonaws.com
エンドポイント例
# https://kafkaconnect.us-east-2.amazonaws.com/v1/connectors/<connectorArn>
https://kafkaconnect.us-east-2.amazonaws.com/v1/connectors/arn:aws:kafkaconnect:us-east-2:xxxx:connector/xxxx/xxx/xxxx
3)サンプル
curl -X GET -H "Content-Type: application/json" \ https://kafkaconnect.us-east-2.amazonaws.com/v1/connectors/arn:aws:kafkaconnect:us-east-2:xxxx:connector/xxxx/xxx/xxxx
関連記事
Amazon MSK ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/04/21/000000
Amazon MSK ~ 基本編 / Connector ~
https://dk521123.hatenablog.com/entry/2023/05/20/003516
Kafka Connect ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2023/04/29/185133
Kafka Connect ~ Rest API ~
https://dk521123.hatenablog.com/entry/2023/05/31/000000
Apache Kafka ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2023/04/26/103421
Apache Kafka ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/05/01/000000
curl コマンド
https://dk521123.hatenablog.com/entry/2017/12/05/233100