使用 AWS Chatbot 实现 DevOps 通知 - 向 Slack/Teams 推送 AWS 事件
将 CloudWatch 告警和 CodePipeline 通知推送到 Slack/Teams,通过 @aws 命令从聊天中操作 AWS,构建 ChatOps 环境。
Chatbot 的机制与支持的服务
AWS Chatbot 是向 Slack 和 Microsoft Teams 推送 AWS 通知,并从聊天频道操作 AWS 的 ChatOps 服务。通过将 SNS 主题关联到聊天频道,发布到该主题的消息会通知到聊天中。支持的 AWS 服务包括 CloudWatch 告警、AWS Health、Security Hub、Budgets、CodePipeline、CodeBuild、GuardDuty、Systems Manager、Config 等众多服务。通知消息以针对各服务优化的格式显示,可直观把握告警状态转换图和流水线阶段进展。
通知设置与 ChatOps
设置只需 3 步完成。将 Slack 工作区或 Teams 租户连接到 Chatbot,选择频道,关联 SNS 主题。CloudWatch 告警通知中,当告警转为 ALARM 状态时会在 Slack 频道发布消息并附带指标图表。ChatOps 功能可从聊天频道通过 @aws 命令执行 AWS CLI。例如 @aws lambda invoke --function-name my-function 调用 Lambda 函数,@aws cloudwatch describe-alarms --state-value ALARM 列出处于告警状态的告警。事件响应时可在聊天频道上完成状况确认和应对操作,减少上下文切换。
安全与访问控制
Chatbot 的频道设置关联 IAM 角色,控制从该频道可执行的 AWS 操作。推荐的配置是仅允许从专用 ops 频道操作生产环境,一般开发频道仅允许只读操作。通过 Guardrail 策略可限制每个频道允许的 IAM 操作,防止误操作对生产环境的影响。Chatbot 的操作日志记录在 CloudTrail 中,可审计谁在何时执行了什么命令。Chatbot 本身免费使用,仅产生 SNS 的发送费用。
Chatbot 的费用
AWS Chatbot 免费使用。向 Slack 或 Teams 推送通知、从聊天执行 AWS CLI 均不产生额外费用。产生成本的仅有触发通知的 SNS 主题(每百万请求约 0.50 美元)和通过 ChatOps 执行的 AWS 操作所创建或修改的资源费用(截至 2026 年 8 月)。免费导入且大幅提升运维可见性和响应速度,推荐所有团队采用。
总结
AWS Chatbot 将 AWS 的通知和操作集成到 Slack/Teams 中,实现 ChatOps 环境。CloudWatch 告警、CodePipeline 状态、Security Hub 发现等通知实时推送到聊天频道,通过 @aws 命令从聊天中操作 AWS。IAM 角色和 Guardrail 策略确保安全性,CloudTrail 提供审计追踪。免费使用且设置简单,是 DevOps 团队的必备工具。
参考资料(AWS 官方)
本页的第一手信息来源是 AWS 官方网站及官方文档。最新的规格与价格请以下列官方页面为准。
如本页内容与官方文档不一致,请以官方文档为准。