如何获取RequestId

在访问阿里云服务时,阿里云为每一个请求提供了一个唯一的标识符RequestId。通过RequestId,您可以在OpenAPI问题诊断或操作审计中查看每一个请求的相关信息。RequestId最常见的使用场景是当调用OpenAPI发生错误时,您可以在OpenAPI问题诊断平台上使用RequestId来诊断报错的具体原因及相应的解决方案。本文将以常见的无权限报错为例,为您介绍在不同的使用场景中如何获取RequestId。

说明

本文内容仅适用于OpenAPI 门户提供的API。

获取途径

您可以通过以下途径获取RequestId。如果请求发生报错,您可以通过RequestIdOpenAPI问题诊断平台上获取解决方案。此外,对于无权限报错,您还可以从报错信息中的AccessDeniedDetail获取具体的无权限操作(AuthAction)以及相关的加密诊断方案(EncodedDiagnosticMessage)。

通过官网控制台的F12开发者工具

在官网控制台进行操作时,您可以通过在浏览器的F12开发者工具中筛选“api.json?”来查看请求信息的RequestId。

image

通过API门户的调试结果

OpenAPI 门户调试时,可以在调用结果中查看请求的RequestId。

image

通过SDK

在使用阿里云SDK时,通常可以从API返回结果中获取RequestId。如果发生报错,可以通过捕获相应的异常类型来获取错误信息。

image

通过CLI

在使用阿里云CLI时,您可以在CLI的输出结果中查看请求的 RequestId。

image

通过Terraform

由于Terraform涉及对多个资源的编排,因此在Terraform执行成功时,系统不会直接输出请求的RequestId。若在Terraform执行过程中出现报错,系统将会输出相关的报错信息,您可以在这些报错信息中查找RequestId。

image

其他

例如使用V3签名调用API时报错。

image

通过RequestId查询请求信息

OpenAPI问题诊断

OpenAPI问题诊断页面输入RequestId,您可以查询该请求的调用链、基本信息、认证信息以及请求的相应内容。在请求发生报错的情况下,您还可以通过诊断方案获取相应的解决方案。

说明

针对因无RAM权限导致的请求被拒绝访问的情况,您还可以从报错信息中获取参数EncodedDiagnosticMessage,并调用DecodeDiagnosticMessage接口解码无权限诊断信息。

image

操作审计

您可以通过调用LookupEvents并传入RequestId来查询事件的详细信息。当调用该API时,您只需在LookupAttribute中传入以下值:

参数

说明

Key

固定为EventId。

Value

填入实际的RequestId。

image