Kafka: 使用 CLI 实现自动化
通过 Stackhero CLI 以编程方式启动 Kafka、获取其凭据并更改其配置
👋 欢迎查阅 Stackhero 文档!
Stackhero 让您轻松上手全托管的 Kafka 云服务 解决方案。您可以期待以下优势:
- 无限制的消息大小与传输,满足不断增长的数据需求。
- 轻松升级,一键应用最新优化。
- 顶级性能与强大安全性,全部运行在您专属的**私有独立虚拟机(VM)**上。
如果您希望节省时间、简化工作流程,不妨试试 Stackhero 的 Kafka 云托管。大约只需 5 分钟即可完成部署!
本指南将演示如何通过命令行创建 Kafka 服务、读取其凭据并更新其配置,全程无需在控制台上点击操作。非常适合脚本、CI 流水线和 AI 智能体等自动化场景。
我们将使用 Stackhero CLI 完成所有操作。如果您尚未安装,可以通过以下命令安装:
curl -fsSL https://www.stackhero.io/install.sh | sh
1. 认证登录
最简单的方式是通过浏览器登录。当您运行登录命令时,CLI 会自动打开一个网页,您只需在网页上授权访问,无需在 CLI 中输入密码或二次验证码。
stackhero login
登录后,您的凭据会被本地保存,后续 CLI 命令会自动使用。
对于脚本或 CI 流水线等全自动环境,建议使用非交互式访问令牌(access token)。您可以在控制台(账户 > Access tokens)创建一个,然后将其导出为环境变量。CLI 及您运行的任何脚本都会自动读取该变量。
export STACKHERO_TOKEN="usr-xxxxxx:your-token"
2. 查找 Kafka 服务商店
接下来,您可以列出当前账户下可用的 Kafka 服务商店。CLI 直接支持使用商店名称(kafka),无需查找或复制任何 ID。
# 列出 Kafka 服务商店(如管理多个组织,可添加 --organization)
stackhero services-store-list --name="kafka"
后续命令中可以直接使用商店名称 kafka,也可以根据需要选择列表中的具体 svs-xxxxxx ID。
3. 选择实例规格和区域
# 列出服务商店可用的实例规格(使用 NAME 列作为 --instance 参数)
stackhero instances-store-list --service-store=kafka
# 列出可用区域(如 "europe")
stackhero regions-list
4. 创建服务
以下是一个示例脚本,演示如何创建一个 stack,将您的 Kafka 服务添加到 stack,等待服务启动,获取其配置信息(包括自动生成的凭据),并应用新的配置。
#!/bin/bash
set -e
export STACKHERO_TOKEN="usr-xxxxxx:your-token"
serviceStore="kafka" # Kafka 服务商店名称(见第 2 步)
instance="..." # 第 3 步获取的实例规格
region="europe" # 第 3 步获取的区域名称
# 为您的服务创建一个 stack(默认使用您的主组织,如有需要可添加 --organization)
stackId=$(stackhero --format=script stack-create \
--name="My Kafka stack")
echo "Stack 已创建: ${stackId}"
# 将 Kafka 添加到 stack(名称自动解析)
serviceId=$(stackhero --format=script service-add \
--stack="My Kafka stack" \
--service-store="${serviceStore}" \
--instance="${instance}" \
--region="${region}")
echo "服务已添加: kafka"
# 等待服务完全启动(可能需要几分钟)
stackhero service-wait-for --service="kafka"
# 获取服务配置,包括自动生成的凭据
stackhero service-configuration-get --service="kafka" --format=json
5. 获取凭据
service-configuration-get 命令会返回服务的完整配置信息,包括自动生成的密码和连接信息。输出为 JSON 格式,便于在脚本和自动化流程中使用。
stackhero service-configuration-get --service=svc-xxxxxx --format=json
6. 更改配置
您可以先查看配置 schema 示例,然后应用自定义配置。当您更新配置时,服务可能会自动重启以应用更改。
# 查看服务的配置 schema 及示例
stackhero service-configuration-example --service=svc-xxxxxx
# 应用自定义配置(如有需要服务会自动重启)
stackhero service-configuration-set \
--service=svc-xxxxxx \
--configuration='{ "...": "..." }'
# 等待新配置生效
stackhero service-wait-for --service=svc-xxxxxx
至此,您已经完整体验了整个生命周期:启动服务、获取凭据、自动化重新配置,全部可通过脚本自动完成。如需深入了解,请参阅 CLI 完整文档,其中也包含本指南中演示的非交互式 STACKHERO_TOKEN 认证方式。