亚马逊AWS官方博客
如何使用OpenClaw+飞书实现亚马逊云的运维
摘要:本文介绍如何使用 OpenClaw 开源框架结合飞书,实现亚马逊云的 ChatOps 自动化运维。
一、背景
随着企业上云规模的不断扩大,运维团队面临着越来越多的挑战:大量的EC2实例需要管理,S3存储桶中的数据需要监控,各种云资源的状态需要实时掌握。传统的运维方式往往依赖于登录AWS控制台或使用CLI工具,这对于非技术人员来说门槛较高,对于需要快速响应的场景也不够便捷。
近年来,ChatOps的理念逐渐兴起——即通过聊天工具来完成运维操作。这种方式将运维操作融入到团队日常使用的即时通讯工具中,使得运维操作变得像发消息一样简单。团队成员无需切换工具,即可在聊天窗口中完成查看资源状态、创建实例、管理存储等操作,大大提升了运维效率和团队协作能力。
OpenClaw(龙虾)是一个开源的ChatOps机器人框架,它支持多种聊天平台的接入,包括飞书、微信、Slack等。飞书作为国内企业广泛使用的协作平台,与OpenClaw的结合可以为团队提供一个强大而便捷的云运维入口。
本文将详细介绍如何在EC2实例上安装和配置OpenClaw,并通过飞书实现对亚马逊云资源的日常运维操作,包括EC2实例的查看、创建、启停,以及S3存储桶的文件管理等典型场景。
二、系统架构
整个方案的架构非常简洁,主要由三个部分组成:飞书客户端、部署在EC2上的OpenClaw服务、以及AWS云资源。用户在飞书中用自然语言对机器人发出运维意图,OpenClaw 通过已订阅的飞书 channel(长连接或 webhook)接收消息,交给模型路由到对应的 skill;skill 在 EC2 本地调用 AWS CLI 完成操作,EC2 通过实例 IAM Role 与 AWS API 通信,结果再由 OpenClaw 回发到飞书会话中。
整体架构如下图所示:
[图1] |
这种架构的优势在于:部署简单,仅需一台EC2即可运行;扩展灵活,可以根据需要添加更多的运维指令;安全可控,通过IAM角色控制OpenClaw的权限范围。
三、安装和配置
OpenClaw 是一个基于 Node.js 的个人 AI 助手 / ChatOps 框架,官方仓库地址为 https://github.com/openclaw/openclaw,支持飞书、Slack、Discord、Telegram、WhatsApp、微信、Teams、Matrix 等二十多个消息平台。它通过 onboard 向导统一接入各个 channel,通过 skill 和 MCP(Model Context Protocol)服务器扩展能力。本文将它部署在一台 EC2 上,并通过飞书对话调用 AWS 运维 skill 完成日常操作。
3.1 环境准备
- 准备一台 EC2 实例(推荐 Amazon Linux 2023 或 Ubuntu 22.04,t3.small 即可),通过 SSH 登录。
- 为实例绑定一个专用 IAM Role(如 OpenClawOpsRole),按最小权限授予目标 AWS 服务的只读/操作权限,例如 AmazonEC2ReadOnlyAccess、AmazonS3ReadOnlyAccess,以及按需的 ec2:StartInstances、ec2:StopInstances 等。
- 安装 Node.js 22.14+(推荐 Node 24);OpenClaw 官方以 npm 全局包的形式分发。
- 确保出站可访问飞书开放平台(open.feishu.cn,HTTPS 443)。入站端口由 openclaw 本地守护进程使用,通常无需对公网开放。
3.2 安装 OpenClaw
- 在 EC2 上用官方提供的一键脚本安装 OpenClaw,并运行 onboard 向导:
- onboard 完成后会生成 ~/.openclaw/ 目录:openclaw.json 是主配置,workspace/skills/ 存放自定义 skill,credentials/ 与 secrets.json 用于保存各 channel 的凭证。
3.3 接入飞书 channel
OpenClaw 官方 docs(docs.openclaw.ai/channels/feishu)把飞书 bot 以 bundled plugin 的形式实现,默认通过 WebSocket 与飞书开放平台建立长连接,因此部署在 EC2 上不需要对公网开放回调端口。
- 在飞书开放平台(open.feishu.cn)创建一个”企业自建应用”,开启”机器人”能力,获取 App ID(以 cli_ 开头)与 App Secret。
- 在应用的”事件订阅”页面订阅消息接收事件 im.message.receive_v1,并确保机器人具备收发消息的最小权限。
- 将飞书凭证写入 OpenClaw 主配置 ~/.openclaw/openclaw.json 的 channels.feishu 段(字段名来自官方文档):
- 可选字段还包括:textChunkLimit(单条消息字符上限,默认 2000)、mediaMaxMb(媒体上传/下载上限,默认 30MB)、resolveSenderNames(是否解析发送者名称)以及按 chat_id 粒度的 groups.<chat_id>.{enabled, requireMention, allowFrom}。
- 如果无法使用 WebSocket 需要切换为 webhook 模式,则需要额外填写 verificationToken、encryptKey,并按需指定 webhookPath(默认 /feishu/events)、webhookHost(默认 127.0.0.1)、webhookPort(默认 3000);WebSocket 模式下这些字段不需要。
- 完成凭证登录并重启 gateway 使配置生效:
- OpenClaw 对 DM 的默认准入策略是 pairing:陌生用户首次发 DM 时会收到配对码,需要管理员审批后才会持续响应。可用以下命令查看与放行:
3.4 可选:接入个人微信 channel
OpenClaw 官方文档(docs.openclaw.ai/channels/wechat)中的”wechat” channel 指的是个人微信,通过腾讯提供的第三方插件 @tencent-weixin/openclaw-weixin 实现,登录方式为手机扫码。请注意该 channel 目前仅宣告支持单聊(DM)与富媒体,不保证对微信群聊的支持;若你需要在企业群里让所有同事触达机器人,推荐仍然以飞书 channel 为主链路,微信仅作为个人管理员在非工作时间收告警/查状态的补充入口。OpenClaw 官方文档当前并未提供独立的”企业微信 / WeCom”channel,请勿将本节的字段照搬到企业微信上。
- 先安装腾讯 weixin 插件(以下两种方式任选其一):
- 启用插件并重启 gateway:
- 扫码登录个人微信账号(凭证会持久化到 OpenClaw 的 state 目录,下次无需再扫):
- 如果同时跑多个微信账号,或希望不同账号/会话互相隔离,开启 per-account 会话作用域:
- 陌生联系人首次 DM 时一样会触发 pairing,管理员审批后才会持续响应;命令与飞书保持一致,只是 channel 名换成 openclaw-weixin:
- 链路自检:
登录态是个人微信,存在被风控下线的风险,不建议把生产级 AWS 写操作完全托付给该 channel;建议将微信 channel 的 aws-ops skill 收紧为只读(例如把 SKILL.md 里的 “安全约束” 改为仅允许 describe/list 类命令)。
3.5 添加 AWS 运维能力(Skill)
OpenClaw 的扩展单元是 skill:一个目录加一份 SKILL.md。SKILL.md 的 frontmatter 声明元数据与运行时依赖,正文是自然语言指令,告诉模型何时调用哪个工具。下面创建一个 aws-ops skill,让机器人能够读写 EC2 与 S3。
- 创建 skill 目录与文件:
- 编辑 SKILL.md,声明该 skill 依赖 AWS CLI,并在正文中说明它的用途与可执行的操作:
- 安装 AWS CLI 并确认 EC2 实例角色已生效(无需再配置 AK/SK):
- 重启 gateway 让新 skill 生效,并确认已被加载:
3.6 验证
- 在飞书中找到已经上线的应用(机器人),在单聊或群聊中 @ 它并发一句自然语言:
@AWS 运维助手 帮我看看当前 region 里所有 EC2 实例
- OpenClaw 会路由到 aws-ops skill,调用 aws ec2 describe-instances 并把结果以 Markdown 表格回发到飞书。首条消息通信正常即代表链路打通。
四、飞书运维场景实战
4.1 场景一:查看EC2实例列表
- 在飞书对话中,@机器人并用自然语言提问即可:
@AWS 运维助手 列出当前区域所有 EC2 实例
- OpenClaw 会调用 aws-ops skill 执行 aws ec2 describe-instances,并把结果格式化成表格回发到飞书,包含实例ID、名称、状态、实例类型和私有IP等关键信息:
| 实例ID | 名称 | 状态 | 类型 | 私有IP |
| i-0abcxxxxxxxxxxx01 | web-prod | running | t3.large | 172.31.16.10 |
| i-0abcxxxxxxxxxxx02 | api-prod | running | t3.medium | 172.31.16.11 |
| i-0abcxxxxxxxxxxx03 | dev-test | stopped | t3.small | 172.31.16.12 |
4.2 场景二:创建EC2实例
- 当需要快速创建一台新的 EC2 实例时,可以在飞书中用自然语言描述需求:
- 由于创建属于写操作,skill 会先把实际将要执行的 aws ec2 run-instances 命令发给用户确认;确认后执行并返回结果:
| 属性 | 值 |
| 状态 | ✅ 创建成功 |
| 实例ID | i-0abcxxxxxxxxxxx04 |
| 名称 | test-server |
| 类型 | t3.micro |
| AMI | ami-0xxxxxxxxxxxxxxxx |
| 当前状态 | pending → running |
| 备注 | 预计1-2分钟后可用 |
4.3 场景三:启动和停止EC2实例
- 启动一台已停止的实例:
- 返回结果:
| 属性 | 值 |
| 状态 | ✅ 实例启动中 |
| 实例ID | i-0abcxxxxxxxxxxx03 |
| 名称 | dev-test |
| 状态变更 | stopped → pending |
- 停止一台运行中的实例:
- 返回结果:
| 属性 | 值 |
| 状态 | ✅ 实例停止中 |
| 实例ID | i-0abcxxxxxxxxxxx03 |
| 名称 | dev-test |
| 状态变更 | running → stopping |
- 由于停止属于写操作,skill 会先把将要执行的 aws ec2 stop-instances 命令发到会话请用户确认,用户回复”确认”后才真正执行。
4.4 场景四:查看S3桶文件
- 查看指定 S3 桶中的文件列表:
@AWS 运维助手 列一下 my-data-bucket 里的对象
- 返回结果:
| 文件名 | 大小 | 最后修改时间 |
| data/train.csv | 256.3 MB | 2026-04-20 10:30:00 |
| data/test.csv | 64.1 MB | 2026-04-20 10:30:00 |
| models/model-v1.tar.gz | 1.2 GB | 2026-04-22 15:45:00 |
| logs/training.log | 4.5 KB | 2026-04-23 08:00:00 |
共 4 个对象,总大小: 1.52 GB
- 也可以按前缀过滤,只查看特定目录下的文件:
4.5 场景五:常用意图速查
aws-ops skill 通过自然语言意图映射到 AWS CLI 命令,下表列举几组常见用法:
| 自然语言(在飞书中) | skill 实际执行的命令 | 权限类型 |
| 列出当前区域的 EC2 实例 | aws ec2 describe-instances | 只读 |
| 查看实例 i-0abcxxxxxxxxxxx 的详情 | aws ec2 describe-instances –instance-ids i-0abcxxxxxxxxxxx | 只读 |
| 启动实例 i-0abcxxxxxxxxxxx | aws ec2 start-instances –instance-ids i-0abcxxxxxxxxxxx | 写(需确认) |
| 停止实例 i-0abcxxxxxxxxxxx | aws ec2 stop-instances –instance-ids i-0abcxxxxxxxxxxx | 写(需确认) |
| 列出 S3 桶 my-bucket 的对象 | aws s3 ls s3://my-bucket/ | 只读 |
| 查看 my-bucket 中 logs/ 前缀 | aws s3 ls s3://my-bucket/logs/ | 只读 |
| 能帮忙做什么 | openclaw skills list / 查看 aws-ops SKILL.md | 元信息 |
五、最后
本文介绍了如何使用OpenClaw(龙虾)结合飞书,构建一个轻量级的亚马逊云ChatOps运维方案。通过这种方式,团队成员可以直接在飞书对话中完成EC2实例的查看、创建、启停,以及S3存储桶的文件管理等日常运维操作,无需登录AWS控制台或记忆复杂的CLI命令。
这种ChatOps模式的核心优势在于:第一,降低了运维操作的门槛,非技术人员也能参与基础运维;第二,所有操作都在聊天记录中留痕,天然具备审计能力;第三,团队成员可以实时看到运维操作的执行情况,提升了协作效率。
当然,本文仅展示了最基础的运维场景。在实际生产环境中,还可以进一步扩展更多功能,例如:集成CloudWatch告警自动推送到飞书群、支持RDS数据库的管理操作、实现基于审批流的高危操作管控、以及接入更多AWS服务的运维指令等。OpenClaw的插件化架构使得这些扩展变得非常简单,读者可以根据自身需求灵活定制。
➡️ 下一步行动:
相关产品:
- Amazon EC2 — 安全且可调整大小的计算容量
- Amazon S3 — 适用于 AI、分析和存档的几乎无限的安全对象存储
- Amazon IAM — 身份管理和访问权限
- Amazon RDS — 完全托管的关系数据库服务
- Amazon CloudWatch — 可观测性工具
相关文章:
- 把龙虾部署到云上:一个值得认真考虑的选择
- 推出 OpenClaw on Amazon Lightsail,用于运行您的自主私有人工智能代理
- 当 OpenClaw 把自己搞崩了——用 Chaterm 排错并一键沉淀运维经验
- OpenClaw 在电商平台的应用场景探索
- 使用Logstash在线迁移 Amazon OpenSearch Service
*前述特定亚马逊云科技生成式人工智能相关的服务目前在亚马逊云科技海外区域可用。亚马逊云科技中国区域相关云服务由西云数据和光环新网运营,具体信息以中国区域官网为准。
本篇作者
亚马逊云科技中国峰会开发者挑战赛现场开启,基于真实业务场景亲手构建 Agent。 |
![]() |


