Install
openclaw skills install @thcjp/azure-infra-freeopenclaw skills install @thcjp/azure-infra-free核心功能: 本技能提供等高级功能等能力。
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| input | string | 是 | Azure Infra Free处理的输入数据或指令 |
| options | object | 否 | 附加配置选项,如模式选择、格式偏好等 |
| callback_url | string | 否 | 异步处理完成后的回调通知URL |
az --version。若未安装,提示用户安装 Azure CLI.az account show。若未登录,引导用户执行 az login --use-device-code.list/show/get)回答用户问题.
结果验证: 任务完成后,查看输出确认状态。成功时返回摘要和数据;失败时根据错误信息排查,参考恢复章节获取修复步骤.| 风险项 | 等级 | 防护措施 | 验证方法 |
|---|---|---|---|
| API密钥泄露 | 高 | 通过环境变量配置,禁止硬编码 | 定期检查代码和配置文件 |
| 命令执行风险 | 高 | 仅执行白名单命令,避免拼接用户输入 | 使用沙箱环境测试 |
| 网络通信安全 | 中 | 使用HTTPS协议,验证SSL证书 | 定期检查证书有效期 |
| 敏感数据暴露 | 高 | 输出结果中不包含密钥、令牌等敏感信息 | 日志脱敏审查 |
| 未授权访问 | 中 | 限制访问权限,实施认证机制 | 定期审计访问日志 |
| 资源类型 | 只读命令 |
|---|---|
| 资源组 | az group list --query "[].{name:name,location:location}" -o table |
| 虚拟机 | az vm list --show-details --query "[].{name:name,rg:resourceGroup,state:powerState}" -o table |
| 存储账户 | az storage account list --query "[].{name:name,rg:resourceGroup}" -o table |
| 虚拟网络 | az network vnet list -o table |
| 公网 IP | az network public-ip list -o table |
| 网络安全组 | az network nsg list --query "[].{name:name,rg:resourceGroup}" -o table |
订阅切换:az account list -o table 查看所有订阅,az account set --subscription <id> 切换目标订阅。查询结果涉及订阅范围时明确标注所用订阅名称.
az vm list --show-details --query "[].{name:name,state:powerState}" -o tableaz vm get-instance-view --name <vm> -g <rg> --query "instanceView.statuses" -o tableaz monitor activity-log list --status Failed --offset 1h -o tableaz monitor metrics list --resource <resource-id> --metric "Percentage CPU" --interval PT1H -o tablelist/show 命令查询资源.用户请求:帮我看看这个订阅里有哪些虚拟机,分别是什么状态. 执行流程:
# 1. 确认当前订阅
az account show --query "{name:name,id:id}" -o table
# ...
# 2. 列出所有虚拟机及电源状态(只读)
az vm list --show-details --query "[].{name:name,rg:resourceGroup,state:powerState,sku:hardwareProfile.vmSize}" -o table
输出说明:以表格列出虚拟机名称、资源组、电源状态、规格。用户可据此识别停止的实例。若用户希望启停或删除实例,提示该操作需升级付费版.
用户请求:最近一小时有没有什么操作失败了?
执行流程:
az monitor activity-log list --status Failed --offset 1h --query "[].{time:eventTimestamp,resource:resourceId,op:operationName.value}" -o table
输出说明:列出最近 1 小时状态为 Failed 的活动事件,包含时间、资源 ID、操作名。用于初步定位异常操作.
| 错误场景 | 原因 | 处理方式 |
|---|---|---|
az: command not found | 本地未安装 Azure CLI | 提示用户安装 Azure CLI(winget install Microsoft.AzureCLI) |
Please run 'az login' | 未登录或会话过期 | 引导用户执行 az login --use-device-code |
SubscriptionNotFound | 订阅 ID 错误或无权访问 | az account list 确认可用订阅后用 az account set 切换 |
AuthorizationFailed | 账号缺少 Reader 权限 | 建议联系订阅 Owner 分配 Reader 角色 |
ResourceNotFound | 资源名称或资源组拼写错误 | 用 az resource list 模糊搜索确认正确名称 |
429 Too Many Requests | ARM 请求触发限流 | 降低查询频率,添加 --query 过滤减少返回量 |
| 请求写操作被拦截 | 本免费版不支持写操作 | 提示用户升级至付费版 azure-infra 技能 |
A:az account list -o table 查看所有订阅,az account set --subscription <id> 切换,然后执行查询命令.
A:使用 --query 参数过滤字段,例如 --query "[].{name:name,rg:resourceGroup}",并用 -o table 输出表格格式.
A:不能。本免费版仅支持只读查询。启停虚拟机、删除资源、修改配置等写操作需升级至付费版 azure-infra 技能,付费版提供完整的确认机制与 dry-run 支持.
A:本免费版不查询 Key Vault 机密值,也不展示任何密钥、令牌等敏感凭据,确保安全.
本免费版仅提供基础只读查询能力。如需完整功能(写操作确认、安全审计、成本分析、跨订阅查询、故障诊断、Key Vault 管理),请升级至付费版 azure-infra 技能.
| 依赖项 | 类型 | 是否必需 | 获取方式 |
|---|---|---|---|
| LLM API | API | 必需 | 由Agent内置LLM提供 |
需要配置对应API Key,详见上文环境配置章节
API Key配置方式:
export API_KEY="${API_KEY:?请设置环境变量}"
配置后需重启会话或开启新终端生效。API Key应妥善保管,避免泄露到版本控制系统.
| 资源类型(续) | 只读命令 |
|---|---|
| {name:name,location:location}" -o table` | |
| {name:name,rg:resourceGroup,state:pow |
{name:name,state:powerState}" -o table`
{
"success": true,
"data": {
"result": "Azure Infra Free处理结果",
"execution_time": "0.5s",
"metadata": {
"version": "1.0",
"processor": "azure-infra"
}
},
"execution_log": [
"解析输入参数",
"执行核心处理",
"格式化输出结果"
],
"error": null
}
Azure Infra Free技能在执行过程中存在以下边界条件和限制:
Azure Infra Free技能的性能边界包括:
Azure Infra Free技能的兼容性约束如下:
触发条件: 当用户需要处理Operations相关任务时自动激活
不适用: 超大文件处理(>100MB)或高并发场景(>100QPS),建议使用专业版或企业方案
| 操作步骤 | 手动耗时 | 自动化耗时 | 时间节约 | 准确率提升 |
|---|---|---|---|---|
| 资源清单查询 | 1小时 | 5分钟 | 55分钟 | 10% |
| 虚拟机状态检查 | 30分钟 | 2分钟 | 28分钟 | 5% |
| 存储账户检查 | 20分钟 | 1分钟 | 19分钟 | 3% |
| 虚拟网络检查 | 15分钟 | 1分钟 | 14分钟 | 2% |
| 公网IP检查 | 10分钟 | 1分钟 | 9分钟 | 1% |
| 对比维度 | 本技能 | 手动操作 | Python脚本 | 专业软件 |
|---|---|---|---|---|
| 操作便捷性 | 高 | 低 | 中 | 高 |
| 成本 | 低 | 高 | 中 | 高 |
| 功能丰富度 | 低 | 低 | 中 | 高 |
| 学习曲线 | 低 | 高 | 中 | 高 |
| 用户体验 | 高 | 低 | 中 | 高 |
| 痛点 | 描述 | 影响范围 | 解决方案 | 量化效果 |
|---|---|---|---|---|
| 资源管理复杂 | 手动管理资源耗时且容易出错 | 整个IT团队 | 提供自动化查询工具,减少人工操作 | 节省50%的IT管理时间 |
| 健康检查困难 | 定期检查资源状态耗时且效率低 | 整个IT团队 | 提供自动化健康检查功能 | 提高健康检查效率30% |
| 安全审计困难 | 安全审计工作量大且耗时 | 安全团队 | 提供自动化安全审计功能 | 节省40%的安全审计时间 |
| 错误现象 | 可能原因 | 诊断步骤 | 解决方案 |
|---|---|---|---|
| 无法登录Azure CLI | CLI未安装或未登录 | 检查CLI安装状态,执行登录操作 | 安装CLI,执行登录 |
| 查询结果为空 | 没有权限或订阅配置错误 | 检查订阅权限,确认订阅配置 | 修改订阅权限,确认订阅配置 |
| 资源查询失败 | 资源不存在或查询命令错误 | 检查资源是否存在,确认查询命令 | 确认资源存在,检查查询命令 |
| 活动日志查询失败 | 日志服务未启用或查询命令错误 | 检查日志服务状态,确认查询命令 | 启用日志服务,检查查询命令 |
| 指标查询失败 | 指标未配置或查询命令错误 | 检查指标配置,确认查询命令 | 配置指标,检查查询命令 |
针对Azure免费版使用中可能遇到的常见问题,提供以下排查方案:
| 错误类型 | 原因分析 | 解决方案 |
|---|---|---|
| API认证失败(401) | API密钥错误或过期 | 检查密钥配置,重新生成token |
| 接口限流(429) | 请求频率超出限制 | 降低调用频率,启用重试退避策略 |
| 响应超时(504) | 网络延迟或服务端负载过高 | 增加超时阈值,检查网络连接 |
| 文件不存在 | 路径错误或文件未创建 | 检查路径拼写,确认文件已生成 |
| 文件格式不支持 | 扩展名不在支持列表中 | 转换为支持的格式后重试 |
| 权限不足 | 当前用户无读写权限 | 检查文件权限,以管理员身份运行 |
| 命令执行失败 | 参数错误或环境依赖缺失 | 检查命令语法,确认依赖已安装 |
| 进程超时 | 命令执行时间过长 | 增加超时设置,优化命令参数 |
| 网络连接失败 | DNS解析失败或防火墙拦截 | 检查网络配置,确认代理设置 |