

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

# 修改程式碼片段以設定 CloudWatch RUM Web 用戶端 (選用)
<a name="CloudWatch-RUM-modify-snippet"></a>

您可以在將程式碼片段插入應用程式之前修改程式碼片段，以啟用或停用數個選項。如需詳細資訊，請參閱 [CloudWatch RUM Web 用戶端文件](https://github.com/aws-observability/aws-rum-web/blob/main/docs/cdn_installation.md)。

有四個您應該務必注意到的組態選項，如這些章節所述。

## 防止收集可能包含個人資訊的資源 URL
<a name="CloudWatch-RUM-resourceURL"></a>

根據預設，CloudWatch RUM Web 用戶端會設定為記錄應用程式所下載的資源 URL。這些資源包括 HTML 檔案、映像、CSS 檔案、JavaScript 檔案等。對於某些應用程式，URL 可能包含個人身分識別資訊 (PII)。

如果您的應用程式發生這種情況，強烈建議您透過在程式碼片段組態中設定 `recordResourceUrl: false` 來停用資源 URL 收集，之後再將其插入到您的應用程式中。

## 手動記錄頁面檢視
<a name="CloudWatch-RUM-pageload"></a>

預設情況下，Web 用戶端會記錄頁面第一次載入時，以及呼叫瀏覽器歷史記錄 API 時的頁面檢視次數。預設頁面 ID 為 `window.location.pathname`。但在某些情況下，您可以覆寫此行為並檢測應用程式，進而以程式設計方式記錄頁面檢視。這樣做可讓您控制頁面 ID 以及其記錄時間。舉例來說，假設 Web 應用程式的 URI 具有變數識別符，例如 `/entity/123` 或 `/entity/456`。依預設，CloudWatch RUM 會為每個 URI 產生頁面檢視事件，其中包含與路徑名稱相符的不同頁面 ID，但您可以依相同的頁面 ID 將其進行分組。若要完成此操作，請使用 `disableAutoPageView` 組態停用 Web 客戶端的頁面檢視自動化，然後使用 `recordPageView` 命令設定所需的頁面 ID。如需詳細資訊，請參閱 GitHub 上的[應用程式特定組態](https://github.com/aws-observability/aws-rum-web/blob/main/docs/configuration.md)。

**內嵌指令碼範例：**

```
cwr('recordPageView', { pageId: 'entityPageId' });
```

**JavaScript 模組範例：**

```
awsRum.recordPageView({ pageId: 'entityPageId' });
```

## 啟用 X-Ray 端對端追蹤
<a name="CloudWatch-RUM-xraytraceheader"></a>

當您建立應用程式監控時，選取 **Trace my service with AWS X-Ray** (使用 追蹤我的服務) 會啟用對應用程式監控取樣之使用者工作階段期間所提出 `XMLHttpRequest` 和 `fetch` 請求的追蹤。然後，您可以在 CloudWatch RUM 儀表板、X-Ray 追蹤地圖以及追蹤詳細資訊頁面中查看這些 HTTP 請求的追蹤。

根據預設，這些用戶端追蹤不會連線到下游伺服器端追蹤。若要將用戶端追蹤連線至伺服器端追蹤並啟用端對端追蹤，請在 Web 用戶端中將 `addXRayTraceIdHeader` 選項設定為 `true`。這會導致 CloudWatch RUM Web 用戶端將 X-Ray 追蹤標頭新增至 HTTP 請求。

下列程式碼區塊會顯示新增用戶端追蹤的範例。為了便於閱讀，此範例會省略某些組態選項。

```
<script>
    (function(n,i,v,r,s,c,u,x,z){...})(
        'cwr',
        '00000000-0000-0000-0000-000000000000',
        '1.0.0',
        'us-west-2',
        'https://client.rum.us-east-1.amazonaws.com/1.0.2/cwr.js',
        {
            enableXRay: true,
            telemetries: [ 
                'errors', 
                'performance',
                [ 'http', { addXRayTraceIdHeader: true } ]
            ]
        }
    );
</script>
```

**警告**  
將 CloudWatch RUM Web 用戶端設定為將 X-Ray 追蹤標頭新增至 HTTP 請求，可能會導致跨來源資源共用 (CORS) 失敗或導致使用 SigV4 簽署的請求簽章無效。如需詳細資訊，請參閱 [CloudWatch RUM Web 用戶端文件](https://github.com/aws-observability/aws-rum-web/blob/main/docs/cdn_installation.md)。強烈建議您在生產環境中新增用戶端 X-Ray 追蹤標頭之前，先測試您的應用程式。

如需詳細資訊，請參閱 [CloudWatch RUM Web 用戶端文件](https://github.com/aws-observability/aws-rum-web/blob/main/docs/cdn_installation.md#http)

## 將未簽署的請求傳送至 CloudWatch RUM
<a name="CloudWatch-RUM-unsigned"></a>

根據預設，RUM Web 用戶端會簽署傳送至 RUM 的所有請求。如果您在用戶端組態中設定 `signing:false`，請求會在傳送至 CloudWatch RUM 時取消簽署。只有在應用程式監視器上連結以公有資源為基礎的政策時，資料才會擷取至 RUM。如需詳細資訊，請參閱[搭配資源型政策使用 CloudWatch RUM](CloudWatch-RUM-resource-policies.md)。