在访问阿里云服务时,阿里云为每一个请求提供了一个唯一的标识符RequestId。通过RequestId,您可以在OpenAPI问题诊断或操作审计中查看每一个请求的相关信息。RequestId最常见的使用场景是当调用OpenAPI发生错误时,您可以在OpenAPI问题诊断平台上使用RequestId来诊断报错的具体原因及相应的解决方案。本文将以常见的无权限报错为例,为您介绍在不同的使用场景中如何获取RequestId。
本文内容仅适用于OpenAPI 门户提供的API。
获取途径
您可以通过以下途径获取RequestId。如果请求发生报错,您可以通过RequestId在OpenAPI问题诊断平台上获取解决方案。此外,对于无权限报错,您还可以从报错信息中的AccessDeniedDetail
获取具体的无权限操作(AuthAction
)以及相关的加密诊断方案(EncodedDiagnosticMessage
)。
通过官网控制台的F12开发者工具
在官网控制台进行操作时,您可以通过在浏览器的F12开发者工具中筛选“api.json?
”来查看请求信息的RequestId。
通过API门户的调试结果
在OpenAPI 门户调试时,可以在调用结果中查看请求的RequestId。
通过SDK
在使用阿里云SDK时,通常可以从API返回结果中获取RequestId。如果发生报错,可以通过捕获相应的异常类型来获取错误信息。
通过CLI
在使用阿里云CLI时,您可以在CLI的输出结果中查看请求的 RequestId。
通过Terraform
由于Terraform涉及对多个资源的编排,因此在Terraform执行成功时,系统不会直接输出请求的RequestId。若在Terraform执行过程中出现报错,系统将会输出相关的报错信息,您可以在这些报错信息中查找RequestId。
其他
例如使用V3签名调用API时报错。
通过RequestId查询请求信息
OpenAPI问题诊断
OpenAPI问题诊断页面输入RequestId,您可以查询该请求的调用链、基本信息、认证信息以及请求的相应内容。在请求发生报错的情况下,您还可以通过诊断方案获取相应的解决方案。
针对因无RAM权限导致的请求被拒绝访问的情况,您还可以从报错信息中获取参数EncodedDiagnosticMessage,并调用DecodeDiagnosticMessage接口解码无权限诊断信息。
操作审计
您可以通过调用LookupEvents并传入RequestId来查询事件的详细信息。当调用该API时,您只需在LookupAttribute中传入以下值:
参数 | 说明 |
Key | 固定为EventId。 |
Value | 填入实际的RequestId。 |