调用AWS Trusted Advisor接口报InvalidParameterValueException的排查与解决
AWS CLI 调用Trusted Advisor查询报错排查
复现场景
用户在终端执行如下查询命令,尝试拉取指定检查项的资源结果:
$ aws support describe-trusted-advisor-check-result \ --check-id eW7HH0l7J9 \ --query 'result.sort_by(flaggedResources[?status!="ok"],&metadata[2])[?starts_with(metadata[2],`On-Demand`)].metadata' \ --output table \ --region us-east-1
命令执行后返回如下报错:
An error occurred (InvalidParameterValueException) when calling the DescribeTrustedAdvisorCheckResult operation: Unknown ID: eW7HH0l7J9
错误根因
接口明确返回的Unknown ID标识,代表传入的检查项参数未通过服务端校验,具体触发来源:
- 使用的
eW7HH0l7J9并非当前服务端可识别的有效Trusted Advisor检查项ID,属于照搬非适配场景的公开ID,这类ID可能对应已下线的旧版检查项、或跨账号不通用的定制检查项,直接传入就会触发无效ID报错。 - 若未按AWS Support接口的强制路由要求指定
us-east-1区域,也可能出现ID匹配失败的识别类报错。
解决操作
- 拉取当前账号下的有效检查项列表:执行命令
aws support describe-trusted-advisor-checks --language zh --region us-east-1,从返回结果中根据检查名称定位到需要查询的On-Demand实例相关成本优化检查项,提取对应条目的id字段值,替换原命令中的无效ID。 - 校验接口调用前置条件:确认当前账号的AWS支持套餐为Developer及以上等级(基础免费套餐无权限调用Trusted Advisor相关API),同时当前使用的IAM身份具备
support:DescribeTrustedAdvisorCheckResult的调用权限。 - 修正命令中的转义字符问题:原命令中嵌入的
"、&为网页复制时带入的HTML转义字符,在终端实际执行时需要替换为原生的双引号、与号字符,避免查询表达式解析失败。
内容的提问来源于stack exchange,提问作者Harley G.
相关产品推荐
相关产品推荐

