Install
openclaw skills install @thcjp/aws-infra-freeopenclaw skills install @thcjp/aws-infra-free通过AWS CLI执行基础只读查询,覆盖资源清单和健康检查两大场景。
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent内置LLM提供 |
需要配置对应API Key,详见上文环境配置章节
API Key配置方式:
export API_KEY="your_api_key_here"
配置后需重启会话或开启新终端生效。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实例清单操作,处理用户输入并返回结果。
输入: 用户提供EC2实例清单所需的参数和指令。
输出: 返回EC2实例清单的处理结果。
EC2实例清单操作,处理输入数据并返回结果EC2实例清单相关配置参数进行设置| 组件 | 说明 | 关键参数 |
|---|---|---|
parser | 解析输入指令 | format, encoding |
processor | 执行核心处理逻辑 | mode, timeout |
output | 格式化输出结果 | format, encoding |
本skill还覆盖以下能力场景: CLI、执行基础只读查询、资源清单和实例健、康检查两大场景、基础设施基础查询、免费版、read、only、帮助开发者快速了、解云资源状态、覆盖两大基础场景、实例健康检查与、告警查看、默认只读模式、不执行任何变更操、适用于日常运维巡、检和资源盘点、如需安全审计、变更追踪等高级功、请升级至。这些能力在上述核心功能中均有对应处理逻辑。
| 场景 | 典型输入 | 输出内容 | 涉及能力 |
|---|---|---|---|
| 日常运维巡检 | "检查所有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
-east-1c: 命令参数,用于指定操作选项-east-1a: 命令参数,用于指定操作选项-state-name: 命令参数,用于指定操作选项-data: 命令参数,用于指定操作选项-app-uploads: 命令参数,用于指定操作选项-east-1b: 命令参数,用于指定操作选项-west-2: 命令参数,用于指定操作选项-logs: 命令参数,用于指定操作选项-caller-identity: 命令参数,用于指定操作选项场景: 运维人员需要快速检查所有EC2实例的运行状态
# 查询所有实例的状态检查结果
aws ec2 describe-instance-status --include-all-instances \
--query 'InstanceStatuses[].[InstanceId,InstanceStatus.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::xxx 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)额外提供:
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
| LLM响应超时或无响应 | 网络延迟或模型负载过高 | 执行ping命令测试网络连通性,检查防火墙和代理设置连接,执行ping命令测试网络连通性,检查防火墙和代理设置连接后重新执行命令请求;确认Agent平台LLM服务正常 |
| 输入内容格式不正确 | 用户输入不符合skill预期格式 | 检查输入是否符合skill使用说明中的格式要求,参考示例章节 |
| 执行结果与预期不符 | 指令描述不够明确或上下文不足 | 提供更详细的指令描述,补充必要的上下文信息 |
| 命令执行失败 | 运行环境不满足要求或权限不足 | 确认运行环境符合依赖说明中的要求;检查命令权限设置 |