Skip to main content

Aliyun Kafka Management Tool - Manage Kafka resources using YAML

Project description

AliKafka CLI Tool

基于 alibabacloud-alikafka20190916 API 版本构建的阿里云 Kafka 管理工具,通过 YAML 配置文件管理 Kafka 资源。

功能特性

  • Topic 管理:创建、更新、删除 Topic
  • Consumer Group 管理:管理消费者组
  • SASL 用户管理:管理 SASL 用户及 ACL 权限
  • 白名单管理:管理实例 IP 白名单
  • 配置即代码:所有配置存储在 YAML 文件中,支持 Git 版本控制
  • Dry-run 模式:预览变更而不实际执行
  • Git 集成:自动生成 commit 建议

安装

从 PyPI 安装(推荐)

pip install alikafka-management-tool

从源码安装(开发模式)

git clone https://github.com/your-org/alikafka-cli.git
cd alikafka-cli
pip install -e .

快速开始

1. 设置配置目录

默认情况下,工具会在当前目录的 config/ 子目录中查找配置文件。您也可以通过环境变量指定自定义配置路径:

# 使用默认配置路径(当前目录/config)
cd /path/to/your/config/repo

# 或使用自定义配置路径
export ALIKAFKA_CONFIG_DIR=/path/to/config

2. 配置访问凭证

创建 .env 文件:

# Aliyun 访问密钥
ALIKAFKA_ACCESS_KEY_ID=your_access_key_id
ALIKAFKA_ACCESS_KEY_SECRET=your_access_key_secret
ALIKAFKA_REGION_ID=cn-shanghai

# 可选:指定配置目录(默认为 ./config)
# ALIKAFKA_CONFIG_DIR=./config

3. 基本使用

# 列出所有实例
alikafka list-instances

# 初始化配置(从现有实例导出)
alikafka init --instance alikafka_xxx --region cn-shanghai

# 应用配置(dry-run)
alikafka apply --instance-name xxx --dry-run

# 应用配置
alikafka apply --instance-name xxx

# 导出配置
alikafka export --instance-name xxx

# 查看差异
alikafka diff --instance-name xxx

命令参考

init

从现有 Kafka 实例初始化配置文件:

alikafka init --instance INSTANCE_ID --region REGION_ID

apply

应用 YAML 配置到 Kafka:

# 应用所有配置
alikafka apply --instance INSTANCE_ID

# 使用实例名称
alikafka apply --instance-name INSTANCE_NAME

# 只应用特定类型
alikafka apply --instance-name xxx --topics-only
alikafka apply --instance-name xxx --groups-only
alikafka apply --instance-name xxx --users-only

# Dry-run 模式
alikafka apply --instance-name xxx --dry-run

export

导出 Kafka 当前状态到 YAML:

alikafka export --instance INSTANCE_ID
alikafka export --instance-name INSTANCE_NAME

diff

显示 YAML 配置与 Kafka 实际状态的差异:

alikafka diff --instance INSTANCE_ID
alikafka diff --instance-name INSTANCE_NAME

list-instances

列出账户中的所有 Kafka 实例:

alikafka list-instances

配置仓库

本工具需要配合配置仓库使用。配置仓库包含 Kafka 资源的 YAML 配置文件:

配置仓库结构

alikafka-configs-xxx/
├── config/
│   ├── global.yaml.template
│   ├── index.yaml
│   └── instances/
│       └── INSTANCE_NAME/
│           ├── metadata.yaml
│           ├── topics.yaml
│           ├── consumer_groups.yaml
│           ├── sasl_users.yaml
│           └── allowlist.yaml
└── .env

开发

本地开发

# 克隆仓库
git clone https://github.com/your-org/alikafka-cli.git
cd alikafka-cli

# 创建虚拟环境
python -m venv venv
source venv/bin/activate  # Linux/macOS
# venv\Scripts\activate   # Windows

# 以开发模式安装
pip install -e .

# 运行命令
alikafka --help

代码格式化

# 安装开发依赖
pip install -e ".[dev]"

# 格式化代码
black src/

# 检查代码风格
flake8 src/

路线图

  • 支持更多资源类型
  • 配置验证模式
  • 配置文件加密
  • Web UI(可选)

贡献

欢迎提交 Issue 和 Pull Request!

许可证

MIT License

相关链接

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

alikafka_management_tool-0.2.1.tar.gz (34.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

alikafka_management_tool-0.2.1-py3-none-any.whl (36.5 kB view details)

Uploaded Python 3

File details

Details for the file alikafka_management_tool-0.2.1.tar.gz.

File metadata

  • Download URL: alikafka_management_tool-0.2.1.tar.gz
  • Upload date:
  • Size: 34.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for alikafka_management_tool-0.2.1.tar.gz
Algorithm Hash digest
SHA256 c30c40fac5ee3a323b4035189bbd6129a9f138196c5323e157bc14018a96b5b1
MD5 86dc47190e18c095dfb319c3ab4ff714
BLAKE2b-256 32bc7620b5842b274152fd5841079e9602ad91da7458f3a29c2ef7245c70c3b5

See more details on using hashes here.

File details

Details for the file alikafka_management_tool-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for alikafka_management_tool-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9720d7c3c0624bf9021373528d1a14a8b1f9160df71b390eb9e956718abb2d59
MD5 f2ef6834f34918d15f3a7b84ef6f56c4
BLAKE2b-256 3c26db2c081f6d49ae5e43e8add2a239af9604e2c98ab3fa922484a5f520c7b4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page