

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 Amazon CloudWatch Logs 中已發佈應用程式的日誌進行偵錯
<a name="troubleshooting-cloudwatch"></a>

Amazon CloudWatch Logs 會即時監控您的 AWS 資源和您在 上執行 AWS 的應用程式。您可以使用 CloudWatch Logs 來收集和追蹤指標，這些指標是您可以針對資源和應用程式測量的變數。

對於對 App Studio 應用程式進行偵錯，CloudWatch Logs 有助於追蹤應用程式執行期間發生的錯誤、稽核資訊，並提供使用者動作和專屬互動的內容。日誌提供歷史資料，您可以用來稽核應用程式用量和存取模式，以及檢閱使用者遇到的錯誤。

**注意**  
CloudWatch Logs 不提供從應用程式 UI 傳遞的參數值的即時追蹤。

使用下列程序從 CloudWatch Logs 中的 App Studio 應用程式存取日誌。

1. 在應用程式的 App Studio 應用程式工作室中，查看 URL，尋找並記下您的應用程式 ID。應用程式 ID 看起來可能會類似這樣：`802a3bd6-ed4d-424c-9f6b-405aa42a62c5`。

1. 透過 [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/) 開啟 CloudWatch 主控台。

1. 在導覽窗格中，選擇 **Log groups** (日誌群組)。

1. 在這裡，您可以找到每個應用程式的五個**日誌群組**。根據您感興趣的資訊類型，選取群組並針對您要探索的資料撰寫查詢。

   下列清單包含日誌群組，以及何時使用每個日誌群組的相關資訊：

   1. `/aws/appstudio/teamId/appId/TEST/app`：使用 偵錯目前發佈至測試環境的應用程式版本相關的自動化回應、元件錯誤或 JavaScript 程式碼。

   1. `/aws/appstudio/teamId/appId/TEST/audit`：使用 偵錯 JavaScript 程式碼錯誤，例如與目前發佈至測試環境的應用程式版本相關的條件式可見性或轉換、查詢失敗，以及登入或許可使用者錯誤。

   1. `/aws/appstudio/teamId/setup`：使用 監控建置器或管理員動作。

   1. `/aws/appstudio/teamId/appId/PRODUCTION/app`：使用 偵錯目前發佈至生產環境的應用程式版本相關的自動化回應、查詢失敗、元件錯誤或 JavaScript 程式碼。

   1. `/aws/appstudio/teamId/appId/PRODUCTION/audit`：使用 偵錯 JavaScript 程式碼錯誤，例如條件式可見性或轉換，以及與目前發佈至生產環境的應用程式版本相關的登入或許可使用者錯誤。
**注意**  
用於偵錯的大多數日誌都會在 `DebugLogClient` 命名空間下分類。

1. 進入日誌群組後，您可以選擇最近的日誌串流，或最後一個事件時間最接近感興趣的時間的日誌串流，也可以選擇搜尋所有日誌串流，以搜尋該日誌群組上的所有事件。如需在 CloudWatch Logs 中檢視日誌資料的詳細資訊，請參閱[檢視傳送至 CloudWatch Logs 的日誌資料](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/Working-with-log-groups-and-streams.html#ViewingLogData)。

## 使用 CloudWatch Logs Insights 查詢來篩選和排序日誌
<a name="troubleshooting-cloudwatch-queries"></a>

您可以使用 CloudWatch Logs Insights 一次查詢多個日誌群組。識別包含工作階段資訊的日誌群組清單後，請導覽至 CloudWatch Logs Insights 並選取日誌群組。然後，透過自訂查詢進一步縮小目標日誌項目。以下是一些範例查詢：

**包含關鍵字的日誌清單：*錯誤***

```
fields @timestamp, @message
| filter @message like 'error'
| sort @timestamp desc
```

**從測試環境偵錯日誌： **

```
fields @timestamp, @message
| filter namespace = "DebugLogClient"
| sort @timestamp desc
```

**5 分鐘內的整體 504/404/500 錯誤計數：**

```
filter @message like '/api/automation' and (@message like ': 404' or @message like ': 500' or @message like ': 504') 
| fields @timestamp, method, path, statusCode  
| stats count(*) as errorCount by bin(5m)
```

如需 CloudWatch Logs Insights 的詳細資訊，請參閱《Amazon CloudWatch [Logs 使用者指南》中的使用 CloudWatch Logs Insights 分析日誌資料](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AnalyzingLogData.html)。