在訪問阿里雲服務時,阿里雲為每一個請求提供了一個唯一的標識符RequestId。通過RequestId,您可以在OpenAPI問題診斷或Action Trail中查看每一個請求的相關資訊。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問題診斷
頁面輸入RequestId,您可以查詢該請求的調用鏈、基本資料、認證資訊以及請求的相應內容。在請求發生報錯的情況下,您還可以通過診斷方案擷取相應的解決方案。
針對因無RAM許可權導致的請求被拒絕訪問的情況,您還可以從報錯資訊中擷取參數EncodedDiagnosticMessage,並調用DecodeDiagnosticMessage介面解碼無許可權診斷資訊。

Action Trail
您可以通過調用LookupEvents並傳入RequestId來查詢事件的詳細資料。當調用該API時,您只需在LookupAttribute中傳入以下值:
參數 | 說明 |
Key | 固定為EventId。 |
Value | 填入實際的RequestId。 |
