我需要針對我正在開發的 Amazon API Gateway REST API 或 WebSocket API 進行偵錯。如何開啟記錄功能以針對 API 進行疑難排解?
若要對 API Gateway REST API 或 WebSocket API 進行疑難排解,請使用 Amazon CloudWatch Logs 以開啟執行記錄和存取記錄功能。
注意:HTTP API 目前僅支援存取記錄,而且這些 API 的記錄設定不同。如需詳細資訊,請參閱設定 HTTP API 的記錄功能。
執行日誌包含可用來識別和疑難排解大部分 API 錯誤的資訊。例如:
存取日誌包含有關存取您 API 的使用者及其存取方式的詳細資訊。您也可以使用日誌來疑難排解 API 錯誤。如需有關每種記錄類型的詳細資訊,請參閱適用於 API Gateway 的 CloudWatch 日誌格式。
1. 在 AWS Identity and Access Management (IAM) 主控台的導覽窗格中,選擇角色。
2. 在角色窗格中,選擇建立角色。
3. 在建立角色頁面上,執行下列動作: 在信任實體類型,選擇 AWS 服務。 在使用案例,選擇 API Gateway。 選擇 API Gateway 選項按鈕。 選擇下一步。
4. 請注意,在權限政策下,AWS 受管政策 AmazonAPIGatewayPushToCloudWatchLogs 是預設設定。該政策具有所有必要的權限。
5. 選擇下一步。
6. 在命名、檢閱並建立下,執行下列操作: 在角色名稱,輸入角色的名稱。 (選擇性) 在角色說明,根據您的偏好編輯說明。 (選擇性) 新增標籤。 選擇建立角色。
7. 在角色窗格的搜尋列中,輸入您建立的角色名稱。然後,從搜尋結果中選擇該角色。
8. 在摘要窗格中,複製角色 ARN。在下一部分中您需要使用此 Amazon Resource Name (ARN)。
如需詳細資訊,請參閱 CloudWatch 記錄的許可。
**注意:**如果您要跨不同 AWS 區域開發多個 API,請在每個區域中完成這些步驟。
1. 在 API Gateway 主控台的 API 窗格中,選擇您建立的 API 名稱。這應該是 REST API 或 WebSocket API (而不是 HTTP API)。
2. 在左側導覽窗格底部的用戶端憑證區段下方,選擇設定。
3. 在設定下的 CloudWatch 日誌角色 ARN,貼上您複製的 IAM 角色 ARN。
4. 選擇儲存。 **注意:**主控台不會確認 ARN 已儲存。
1. 在 API Gateway 主控台的 API 窗格中,選擇您建立的 API 名稱。
2. 在左側導覽窗格中,選擇 階段。然後,選擇所需的階段名稱。
3. 選擇日誌/追蹤索引標籤。
4. 在日誌/追蹤 索引標籤的 CloudWatch 設定下,執行下列動作以開啟執行記錄: 選擇啟用 CloudWatch 記錄核取方塊。 在日誌層級,選擇 INFO 以產生所有請求的執行日誌。或者,選擇 ERROR,僅針對造成 API 錯誤的請求產生執行日誌。 如果是 REST API,選擇記錄完整請求/回應資料核取方塊。或者,如果是 WebSocket API,選擇記錄完整訊息資料核取方塊。
5. 在自訂存取記錄下,執行下列動作以開啟存取記錄: 選擇啟用存取記錄核取方塊。 在存取日誌目的地 ARN,輸入 Amazon Kinesis Data Firehose (僅支援 REST API) 或 CloudWatch 日誌群組的 ARN。
輸入日誌格式。如需指引,請選擇 CLF、JSON、XML 或 CSV 來查看該格式的範例。
6. 選擇儲存變更。 **注意:**主控台不會確認設定已儲存。
如需詳細資訊,請參閱使用 API Gateway 主控台設定 CloudWatch API 記錄功能。
1. 使用您的用戶端應用程式或者使用 Postman 應用程式或 wscat (適用於 WebSocket API) 等工具,傳送新請求至您的 API。
2. 在 CloudWatch 主控台左側導覽窗格的日誌下,選擇日誌群組。
3. 在日誌群組清單中,選擇要偵錯的 API 日誌群組。 如果是 REST API,日誌群組的名稱格式如下: API-Gateway-Execution-Logs_apiId/stageName。 如果是 WebSocket API,日誌群組的名稱格式如下:/aws/apigateway/apiId/stageName。 **注意:**存取日誌位於您在開啟存取記錄時為其指定 ARN 的日誌群組中。
4. 在日誌串流清單中,選擇具有最新**上次事件時間的日誌串流。**此選擇將能讓您查看具有請求執行或存取詳細資訊的訊息。
如需詳細資訊,請參閱在 CloudWatch 主控台中檢視 API Gateway 日誌事件。
在 API Gateway 中設定 REST API 的 CloudWatch 記錄功能
API Gateway 映射範本和存取記錄變數參考
使用 Amazon CloudWatch 指標來監控 REST API 執行
使用 CloudWatch 指標來監控 WebSocket API 執行