1. 前置条件
[必须] CLI User-Agent —— 每次aliyunCLI 命令调用都必须包含:--user-agent AlibabaCloud-Agent-Skills/alibabacloud-resourcecenter-search
[必须] 启用 AI-Mode —— AI-mode 是 Agent Skill 执行所必需的。
在任何其他aliyunCLI 调用之前运行以下命令:
```bash
aliyun configure ai-mode enable
aliyun configure ai-mode set-user-agent --user-agent "AlibabaCloud-Agent-Skills/alibabacloud-resourcecenter-search"
```
前置检查:需要 Aliyun CLI >= 3.3.3
运行aliyun version确认 >= 3.3.3。若未安装或版本过低,
运行curl -fsSL https://aliyuncli.alicdn.com/setup.sh | bash安装 / 更新,
或见references/cli-installation-guide.md获取安装说明。
然后 [必须] 运行aliyun configure set --auto-plugin-install true启用插件自动安装。
然后 [必须] 运行aliyun plugin update确保本地已有插件始终为最新版本。
前置检查:需要阿里云凭证
安全规则:
- 绝不读取、回显或打印 AK/SK 值(例如echo $ALIBABA_CLOUD_ACCESS_KEY_ID是禁止的)
- 绝不要求用户在对话或命令行中直接输入 AK/SK
- 绝不使用字面凭证值运行aliyun configure set
- 只使用aliyun configure list检查凭证状态
```bash
aliyun configure list
```
检查输出中是否有有效 profile(AK、STS 或 OAuth 身份)。
如果不存在有效 profile,就此停止。
1. 从阿里云控制台获取凭证
2. 在本会话之外配置凭证(通过终端中的aliyun configure或 shell profile 中的环境变量)
3. 待aliyun configure list显示有效 profile 后再返回并重试
[必须] 在每个退出点禁用 AI-Mode —— 因任何原因交付最终回复之前,始终先禁用 AI-mode。这适用于所有退出路径:工作流成功、工作流失败、错误 / 异常、用户取消、会话结束,或不再执行 CLI 命令的任何其他场景。
AI-mode 仅用于 Agent Skill 调用场景,Skill 停止运行后不得保持启用。
```bash
aliyun configure ai-mode disable
```
2. 参数确认
重要:参数确认 —— 执行任何命令或 API 调用前,
所有用户可自定义的参数(例如 RegionId、实例名、CIDR 块、
密码、域名、资源规格等)都必须与用户确认。
未经用户明确批准,不要假设和使用默认值。
| 参数 | 必填 / 可选 | 说明 | 默认值 |
|---|---|---|---|
| - | - | - | - |
Scope | 必填(跨账号) | 跨账号搜索范围:资源目录 ID、根文件夹 ID、文件夹 ID 或成员 ID | 无 |
ResourceType | 可选 | 资源类型(例如 ACS::ECS::Instance) | 无(所有类型) |
RegionId | 可选 | 资源地域 ID(例如 cn-hangzhou) | 无(所有地域) |
ResourceId | 可选 | 资源 ID | 无 |
ResourceName | 可选 | 资源名称 | 无 |
VpcId | 可选 | VPC ID(例如 vpc-xxx) | 无 |
VSwitchId | 可选 | VSwitch(例如 vsw-xxx) | 无 |
IpAddress | 可选 | IP 地址 | 无 |
GroupByKey | 可选 | 统计分组维度:ResourceType、RegionId、ResourceGroupId | 无 |
MaxResults | 可选 | 分页 API 的页大小 | 20 |
3. RAM 策略
完整权限列表见 references/ram-policies.md。
推荐系统策略:
- 只读:
AliyunResourceCenterReadOnlyAccess - 完全访问:
AliyunResourceCenterFullAccess
开通资源中心会自动创建服务关联角色 AliyunServiceRoleForResourceMetaCenter。
资源可见范围
RAM 策略(定义在 ram-policies.md)控制用户能否调用资源中心 API。然而,对于搜索 API(SearchResources、GetResourceCounts、GetResourceConfiguration、SearchMultiAccountResources、GetMultiAccountResourceCounts、GetMultiAccountResourceConfiguration),结果中可见资源的范围由各云产品自身的权限决定:
#### 单账号
- 云资源读权限:RAM 用户只能在资源中心看到其在相应云产品上有只读权限的资源。例如,授予
ReadOnlyAccess让用户看到其有访问权限的所有资源;仅授予AliyunVPCReadOnlyAccess则将可见性限制为 VPC 资源。 - 资源组范围权限:如果资源按资源组组织,你可以授予 RAM 用户限定到特定资源组的读访问。用户将只看到该组内的资源,实现资源隔离。
#### 跨账号
- 为资源目录管理账号的 RAM 用户授予系统策略
AliyunResourceCenterFullAccess以启用跨账号资源搜索。
4. 核心工作流
步骤 1:根据用户需求识别 API
根据用户的具体场景确定需要哪些 API。参考下方场景卡片。
步骤 2:[必须] 每次 CLI 调用前阅读 API 文档
关键警告:不要在没有先阅读references/related-apis.md中确切参数格式的情况下执行任何aliyun resourcecenter命令。
失败模式:猜测--filter格式等参数会导致错误。正确的 JSON 结构必须从文档复制。
强制动作:在构造任何 CLI 命令之前,打开并阅读 references/related-apis.md 中的具体 API 章节。
场景卡片
#### 场景 1:服务开通
| 需求 | 账号类型 | API | 说明 |
|---|---|---|---|
| - | - | - | - |
| 检查是否启用 | 单账号 | get-resource-center-service-status | 返回服务状态 |
| 启用服务 | 单账号 | enable-resource-center | 首次使用必需 |
| 检查跨账号状态 | 资源目录 | get-multi-account-resource-center-service-status | 多账号场景 |
| 启用跨账号服务 | 资源目录 | enable-multi-account-resource-center | 需要管理账号或委派管理员 |
#### 场景 2:ResourceType 发现
| 需求 | 账号类型 | 脚本 | 说明 |
|---|---|---|---|
| - | - | - | - |
| 按关键词查找资源类型代码 | 单账号 | scripts/query-resource-types.py | 在 ResourceType、ProductName 和 ResourceTypeName 字段中搜索 |
决策逻辑:
- 当需要按资源类型过滤但不知道确切代码时 → 先使用此脚本
- 发现正确的
ResourceType代码后 → 在搜索或统计 API 中用--filter参数使用它
#### 场景 3:资源搜索
| 需求 | 账号范围 | API | 关键参数 |
|---|---|---|---|
| - | - | - | - |
| 按条件搜索资源 | 当前账号 | search-resources | --filter |
| 跨账号资源搜索 | 资源目录 | search-multi-account-resources | --scope + --filter |
| 搜索含已删除资源 | 当前账号 | search-resources | --include-deleted-resources=true |
#### 场景 4:查看资源详情
| 需求 | 账号范围 | API | 用例 |
|---|---|---|---|
| - | - | - | - |
| 获取单个资源配置 | 当前账号 | get-resource-configuration | 获取完整配置详情 |
| 批量获取多个资源配置 | 当前账号 | batch-get-resource-configurations | 一次获取多个资源 |
| 从另一账号获取资源配置 | 资源目录 | get-multi-account-resource-configuration | 跨账号查看 |
#### 场景 5:统计与分析
| 需求 | 账号范围 | API | 分组维度 |
|---|---|---|---|
| - | - | - | - |
| 统计资源 | 当前账号 | get-resource-counts | ResourceType、RegionId、ResourceGroupId |
| 跨账号统计 | 资源目录 | get-multi-account-resource-counts | ResourceType、RegionId、ResourceGroupId |
#### 场景 6:标签发现
| 需求 | 账号范围 | API | 说明 |
|---|---|---|---|
| - | - | - | - |
| 列出所有标签键 | 当前账号 | list-tag-keys | 浏览标签目录 |
| 列出特定标签键的值 | 当前账号 | list-tag-values | 例如列出 env 的所有值 |
| 跨账号标签键 | 资源目录 | list-multi-account-tag-keys | 多账号场景 |
| 跨账号标签值 | 资源目录 | list-multi-account-tag-values | 多账号场景 |
5. 成功验证
每个工作流步骤的详细验证步骤和命令见 references/verification-method.md。
6. 注意事项
[必须] 高风险操作确认 —— 执行disable-resource-center或disable-multi-account-resource-center前:
1. 必须明确告知用户影响:
- 禁用影响
- 禁用资源中心后,资源数据将无法在资源中心查看。具体而言:
- 对于单个阿里云账号,禁用资源中心后,当前账号的资源数据将无法查看。
- 对于资源目录的管理账号和资源中心的委派管理员账号,禁用资源中心还会禁用跨账号资源搜索功能。当前账号和资源目录成员的资源数据将无法查看。此外,成员将无法查看自己账号中的资源数据。
- 禁用资源中心后,控制台首页的资源管理模块、配置审计服务及其他相关场景也将无法查看资源数据。
- 禁用限制
- 如果资源目录的管理账号或资源中心的委派管理员账号已由另一账号启用跨账号资源功能,则无法禁用资源中心。
- 如果有云产品或功能对资源中心有强依赖,例如配置审计和关联资源转移,你必须先禁用那些云产品或功能才能禁用资源中心。
2. 必须获得用户明确确认(例如用户输入"确认禁用"或类似的明确肯定)
3. 未经用户明确确认,不得继续
#### 禁用资源中心
警告: 禁用将移除所有资源数据并影响依赖服务(例如配置审计)。如已启用跨账号,必须先禁用跨账号。
aliyun resourcecenter disable-resource-center \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-resourcecenter-search
#### 禁用跨账号资源中心
如已启用跨账号,必须在禁用单账号资源中心之前完成。需要管理账号或委派管理员。
aliyun resourcecenter disable-multi-account-resource-center \
--user-agent AlibabaCloud-Agent-Skills/alibabacloud-resourcecenter-search
7. 最佳实践
- 每次资源中心 CLI 调用都带
--user-agent—— 本 Skill 中所有aliyun resourcecenter示例都包含--user-agent AlibabaCloud-Agent-Skills/alibabacloud-resourcecenter-search。为本 Skill 执行命令时,始终传同一标志,以使使用与验证、维护者期望和任何自动化检查一致。 - 用过滤器做定向搜索 —— 组合
ResourceType、RegionId和Tag过滤器提高搜索效率 - 用
GroupByKey快速统计 —— 无需遍历即可按类型、地域或资源组获取资源分布 - 跨账号范围选择 —— 使用最具体的范围(成员 ID > 文件夹 ID > 根文件夹 ID > 目录 ID)以缩小搜索结果
- 启用后等待 —— 资源中心激活后需要几分钟构建数据;大型账号可能更久
- 优先只读策略 —— 日常搜索和统计操作用
AliyunResourceCenterReadOnlyAccess以保证安全 - ResourceType 发现 —— 当不知道确切资源类型代码时,使用第 8 节记录的辅助脚本(从 Skill 根目录运行)。
- 标签发现 vs 标签过滤搜索 —— 对于"存在哪些标签键 / 值",用
list-tag-keys/list-tag-values(以及带--scope的多账号变体)。将search-resources保留用于查找匹配标签条件的资源。
8. 可用脚本
| 脚本 | 用途 | 用法 |
|---|---|---|
| - | - | - |
scripts/query-resource-types.py | 从阿里云资源中心按关键词查询资源类型;stdout 为 JSON(resourceTypes、count、keyword、language;失败用 success: false 和 error) | python3 scripts/query-resource-types.py <keyword> [--language LANGUAGE] |
9. 故障排查
当资源中心 API 调用或 aliyun resourcecenter 命令失败时,读取响应的 HTTP 状态、Code(错误码)和 Message,然后与目录匹配。
完整错误列表: references/error-codes.md
10. 参考链接
| 参考 | 说明 |
|---|---|
| - | - |
| references/related-apis.md | 所有 CLI 命令列表 |
| references/ram-policies.md | RAM 权限策略 |
| references/verification-method.md | 每个工作流的验证步骤 |
| references/error-codes.md | 去重的资源中心 API 错误码目录(HTTP、Code、Message)和查找提示 |
| references/cli-installation-guide.md | Aliyun CLI 安装指南 |
| references/acceptance-criteria.md | 仅供维护者 / CI:Skill 测试验收标准、正确 CLI 命令模式、参数校验规则。注意: 本文档面向人工维护者和自动化测试,终端用户无需阅读。 |
阿里云skills
◯ 评论 0