Install
openclaw skills install @thcjp/aws-infra-freeopenclaw skills install @thcjp/aws-infra-free通过AWS CLI执行基础只读查询,覆盖资源清单和健康检查两大场景.
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | AWS Infra LITE处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent内置LLM提供 |
需要配置对应API Key,详见上文环境配置章节
API Key配置方式:
export API_KEY="${API_KEY:?请设置环境变量}"
配置后需重启会话或开启新终端生效。API Key应妥善保管,避免泄露到版本控制系统.
aws ec2 describe-instances --query 'Reservations[].Instances[].[InstanceId,State.Name,InstanceType]' --output tableaws s3api list-buckets --query 'Buckets[].[Name,CreationDate]' --output tableaws rds describe-db-instances --query 'DBInstances[].[DBInstanceIdentifier,Engine,DBInstanceStatus]' --output tableaws ec2 describe-instance-status --include-all-instances --query 'InstanceStatuses[].[InstanceId,InstanceStatus.Status,SystemStatus.Status]' --output tableaws cloudwatch describe-alarms --state-value ALARM --query 'MetricAlarms[].[AlarmName,StateValue,MetricName]' --output table升级提示: 安全审计(IAM/安全组检查)、成本分析(Cost Explorer)、变更追踪(CloudTrail)等高级功能仅在aws-infra付费版中提供.
| 场景 | 典型输入 | 输出内容 | 涉及能力 |
|---|---|---|---|
| 日常运维巡检 | "检查所有EC2实例状态" | 实例ID、状态、状态检查结果的表格 | 健康检查 |
| 资源盘点 | "列出我们账户下的所有S3存储桶" | 存储桶名称、创建时间列表 | 资源清单 |
| 故障排查 | "查看当前有哪些CloudWatch告警" | 告警名称、状态、指标名称表格 | 健康检查 |
不适用于: 需要安全审计、成本分析、变更追踪的场景(请使用付费版),需要创建/修改/删除AWS资源的操作
aws sts get-caller-identity
# 确认当前账户和用户,确保有足够的只读权限
# 查看当前默认区域
aws configure get region
# ...
# 如需切换区域
aws configure set region us-west-2
根据运维需求选择对应能力:
describe-instances)describe-instance-status)# 表格格式 (适合人类阅读)
--output table
# ...
# JSON格式 (适合程序处理)
--output json
场景: 运维人员需要快速检查所有EC2实例的运行状态
# 查询所有实例的状态检查结果
aws ec2 describe-instance-status --include-all-instances \
--query 'InstanceStatuses[].Status,SystemStatus.Status,AvailabilityZone]' \
--output table
预期输出:
------------------------------------------------------------------------------------
| DescribeInstanceStatus |
+----------------------+-------------------+-----------------+--------------------+
| i-0abc123def456789 | ok | ok | us-east-1a |
| i-0def456ghi789123 | impaired | ok | us-east-1b |
| i-0ghi789jkl123456 | ok | insufficient | us-east-1c |
+----------------------+-------------------+-----------------+--------------------+
分析: i-0def456ghi789123的实例状态为impaired,需要进一步检查;i-0ghi789jkl123456的系统状态为insufficient,可能需要重启或联系AWS支持.
场景: 开发者需要确认账户下有哪些S3存储桶
aws s3api list-buckets --query 'Buckets[].[Name,CreationDate]' --output table
预期输出:
------------------------------------------------------------
| ListBuckets |
+---------------------------+-----------------------------+
| my-app-uploads | 2024-01-15T10:30:00.000Z |
| cloudfront-logs | 2024-02-20T14:15:00.000Z |
| backup-data | 2024-03-10T09:00:00.000Z |
+---------------------------+-----------------------------+
| 错误场景 | 错误信息 | 原因分析 | 处理方式 |
|---|---|---|---|
| 凭证未配置 | Unable to locate credentials | 未运行aws configure或环境变量未设置 | 运行aws configure配置Access Key和Secret Key |
| 凭证过期 | The security token included in the request is expired | 使用了临时凭证(STS)且已过期 | 运行aws sts get-session-token获取新凭证 |
| 权限不足 | User: arn:aws:iam::未指定 is not authorized to perform: ec2:DescribeInstances | IAM用户缺少对应API的调用权限 | 在IAM控制台为用户附加AmazonEC2ReadOnlyAccess策略 |
| 区域错误 | 查询结果为空 | 指定的区域不正确或该区域无资源 | 使用aws configure set region切换区域重新查询 |
| 限流(Throttling) | Rate exceeded | API调用频率超过限制 | 减少查询频率,添加--cli-read-timeout 60参数 |
A: 通过--region参数或修改默认区域:
# 方式1: 单次查询指定区域
aws ec2 describe-instances --region us-west-2
# ...
# 方式2: 修改默认区域
aws configure set region us-west-2
A: 使用--filters参数过滤:
aws ec2 describe-instances --filters Name=instance-state-name,Values=running \
--query 'Reservations[].Instances[].[InstanceId,InstanceType,LaunchTime]' --output table
A: 免费版(LITE)包含资源清单查询和健康检查两大基础功能。付费版(AWS Infra Inspector)额外提供:
| 错误现象 | 可能原因 | 诊断步骤 | 解决方案 |
|---|---|---|---|
| 无法连接到AWS服务 | 网络连接问题 | 检查网络连接状态,尝试ping AWS服务端点 | 确保网络连接正常,或联系网络管理员 |
| 查询结果为空 | 配置错误或权限问题 | 检查AWS CLI配置文件,确认默认区域和凭证正确 | 修正配置文件,或使用正确的凭证重新配置 |
| 输出格式错误 | AWS CLI版本不兼容 | 检查AWS CLI版本,确认是否为2.0.53或更高版本 | 升级AWS CLI到最新版本 |
| 查询速度慢 | API限流 | 检查API调用频率,确认是否超过限制 | 减少查询频率,或使用异步查询 |
| 实例状态无法查询 | IAM策略限制 | 检查IAM策略,确认是否有权限执行DescribeInstances操作 | 为IAM用户附加AmazonEC2ReadOnlyAccess策略 |
| 风险项 | 等级 | 防护措施 | 验证方法 |
|---|---|---|---|
| 凭证泄露 | 高 | 使用环境变量存储凭证,避免在代码中硬编码 | 检查代码和配置文件,确保没有凭证泄露 |
| 未授权访问 | 中 | 限制API访问,使用IAM角色和策略 | 检查IAM策略,确保只有授权用户可以访问API |
| 数据泄露 | 高 | 加密敏感数据,使用S3的加密功能 | 检查S3存储桶的加密设置,确保数据加密 |
| API密钥滥用 | 高 | 定期轮换API密钥,监控API调用日志 | 定期轮换API密钥,检查API调用日志中的异常行为 |
| 权限滥用 | 中 | 限制用户权限,使用最小权限原则 | 检查IAM用户的权限,确保用户只有执行必要操作所需的权限 |
| 场景 | 效率提升量化分析 | 差异化对比 |
|---|---|---|
| 资源清单查询 | 通过自动化查询,将手动查询时间从数小时缩短到几分钟 | 相比手动查询,节省了大量的时间和人力成本 |
| 健康检查 | 实时监控实例状态,及时发现并处理问题,将故障响应时间从数小时缩短到分钟级别 | 相比传统监控方式,提高了故障响应速度和系统稳定性 |
| 异步处理 | 支持异步查询,用户可以在后台处理大量数据,提高了工作效率 | 相比同步查询,提高了处理大量数据的能力 |
| 输出格式化 | 提供表格和JSON两种输出格式,方便用户根据需求进行数据处理 | 相比原始输出,提高了数据处理效率 |
| 代码集成 | 可以通过API集成到其他应用程序中,实现自动化运维 | 相比手动操作,提高了自动化程度和运维效率 |
A1: 通过AWS CLI执行。支持文本指令和结构化参数输入,具体格式参考使用流程章节。
A2: 是的,部分功能需要配置对应平台的API Key。请在依赖说明章节查看具体要求,并通过环境变量安全配置。
A3: 检查命令参数是否正确,确认运行环境支持exec能力。如遇权限问题,请参照错误处理章节排查。
| 操作场景 | 手动耗时 | 自动化耗时 | 效率提升 |
|---|---|---|---|
| 文件解析与提取 | 5-10分钟/个 | <5秒/个 | 60-120x |
| 批量文件处理(100个) | 8-16小时 | <5分钟 | 96-192x |
| API调用与响应解析 | 2-3分钟/次 | <1秒/次 | 120-180x |
| 多接口数据聚合 | 15-30分钟 | <10秒 | 90-180x |
| 命令执行与结果收集 | 3-5分钟/次 | <2秒/次 | 90-150x |
| 重复任务批量执行 | 因任务而异 | 线性缩减 | 5-50x |
| 错误排查与修复 | 10-30分钟 | <30秒 | 20-60x |
| 对比维度 | AWS免费版 | 传统手动方式 | 通用脚本工具 |
|---|---|---|---|
| 自动化程度 | 全流程自动 | 完全手动 | 部分自动 |
| 错误处理 | 内置错误恢复 | 依赖人工经验 | 基本try-catch |
| 可复用性 | 参数化配置 | 一次性脚本 | 模板化 |
| 安全合规 | 内置安全检查 | 无安全保障 | 无安全保障 |
| 适用场景 | 通过AWS CLI执行 | 通用场景 | 通用场景 |
针对AWS免费版使用中可能遇到的常见问题,提供以下排查方案:
| 错误类型 | 原因分析 | 解决方案 |
|---|---|---|
| API认证失败(401) | API密钥错误或过期 | 检查密钥配置,重新生成token |
| 接口限流(429) | 请求频率超出限制 | 降低调用频率,启用重试退避策略 |
| 响应超时(504) | 网络延迟或服务端负载过高 | 增加超时阈值,检查网络连接 |
| 文件不存在 | 路径错误或文件未创建 | 检查路径拼写,确认文件已生成 |
| 文件格式不支持 | 扩展名不在支持列表中 | 转换为支持的格式后重试 |
| 权限不足 | 当前用户无读写权限 | 检查文件权限,以管理员身份运行 |
| 命令执行失败 | 参数错误或环境依赖缺失 | 检查命令语法,确认依赖已安装 |
| 进程超时 | 命令执行时间过长 | 增加超时设置,优化命令参数 |
| 网络连接失败 | DNS解析失败或防火墙拦截 | 检查网络配置,确认代理设置 |