本文說明如何建立合成監控器,定期測試 URI 中包含的連結。您可以指定測試選項,例如來源 URI、測試的連結數量和重試次數,然後部署預先設定的 Cloud Run 函式。為協助您排解及偵錯,合成監控器會儲存每項測試的詳細資訊,包括螢幕截圖。您可以透過螢幕截圖,查看應用程式顧客看到的確切回覆。
如要進一步瞭解綜合監控功能,請參閱「關於綜合監控功能」一文。
這項功能僅支援 Google Cloud 專案。 如要進行 App Hub 設定,請選取 App Hub 主專案或啟用應用程式的資料夾管理專案。
關於無效連結檢查工具
每個失效連結檢查工具都會依序測試連結,且有可設定的整體綜合逾時時間。
根據預設,失效連結檢查工具會執行下列動作:
- 搜尋具有
href
屬性的 HTML 錨點元素。 - 測試來源 URI 中找到的前 10 個連結。
- 檢查工具會針對每個連結發出要求,然後等待回應最多 30 秒。收到回應後,檢查工具會驗證 HTTP 回應狀態是否為
200
,表示回應成功。檢查程式不會重試。
您指定來源 URI。您可以設定斷開連結檢查工具要搜尋的 HTML 元素、測試的元素數量上限、每次測試的逾時時間,以及是否要重試。您也可以設定失效連結檢查工具,等待選取器顯示。
斷開連結檢查工具會使用 broken-links-ok
範本。斷開連結檢查工具的設定是由 index.js
檔案的 options
物件指定。如果您使用Google Cloud 控制台建立檢查程式,系統會提示您輸入各項設定選項,並為您更新 Cloud Run 函式。不過,如果您使用 Cloud Monitoring API 或 Terraform,就必須填入這個物件。
建立失效連結檢查工具後,如要修改設定,請更新 options
物件並重新部署 Cloud Run 函式。
事前準備
在將儲存連結檢查工具的 Google Cloud 專案中,完成下列步驟:
-
如要取得必要權限,以便使用 Google Cloud 控制台查看及修改合成監控器,請要求管理員授予您專案的下列 IAM 角色:
-
監控編輯者 (
roles/monitoring.editor
) -
Cloud Functions 開發人員 (
roles/cloudfunctions.developer
)
如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。
-
監控編輯者 (
-
Enable the Cloud Monitoring API, Artifact Registry API, Cloud Build API, Cloud Functions API, Cloud Logging API, Pub/Sub API, and Cloud Run Admin API APIs.
確認 Google Cloud 專案包含預設的 Compute Engine 服務帳戶。啟用 Compute Engine API 時,系統會建立這個服務帳戶,名稱類似於
12345-compute@developer.gserviceaccount.com
。前往 Google Cloud 控制台的「Service Accounts」(服務帳戶) 頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「IAM & Admin」的結果。
如果預設的 Compute Engine 服務帳戶不存在,請按一下「建立服務帳戶」,然後完成對話方塊。
確認預設的 Compute Engine 服務帳戶或您建立的服務帳戶,已獲派「編輯者」角色 (
roles/editor
)。如要查看授予服務帳戶的角色,請按照下列步驟操作:
-
前往 Google Cloud 控制台的「IAM」IAM頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「IAM & Admin」的結果。
- 選取「包含 Google 提供的角色授權」。
- 如果合成監控項使用的服務帳戶未列出,或尚未獲派包含 Cloud Trace 代理者角色 (
roles/cloudtrace.agent
) 權限的角色,請將這個角色授予服務帳戶。
-
- 設定要用來接收通知的通知管道。建議您建立多種通知管道,詳情請參閱「建立及管理通知管道」和「由 API 建立及管理通知管道」。
-
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
Terraform
如要在本機開發環境中使用本頁的 Terraform 範例,請安裝並初始化 gcloud CLI,然後使用使用者憑證設定應用程式預設憑證。
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.
詳情請參閱 Google Cloud 驗證說明文件中的「 為本機開發環境設定 ADC」。
REST
如要在本機開發環境中使用本頁的 REST API 範例,請使用您提供給 gcloud CLI 的憑證。
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
詳情請參閱 Google Cloud 驗證說明文件中的「Authenticate for using REST」。
建立無效連結檢查工具
控制台
使用 Google Cloud 控制台建立綜合監控項目時,系統會部署新的 Cloud Run 函式 (第 2 代),並建立該 Cloud Run 函式的監控項目。您無法建立綜合監控項目來監控現有的 Cloud Run 函式。
- 請確認您已啟用必要 API、專案包含預設的 Compute Engine 服務帳戶,且該帳戶已獲派「編輯者」角色 (
roles/editor
)。詳情請參閱「事前準備」一節。 -
前往 Google Cloud 控制台的
「Synthetic monitoring」(綜合監控) 頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。
- 在 Google Cloud 控制台的工具列中,選取您的 Google Cloud 專案。如為「App Hub」設定,請選取 App Hub 主機專案或已啟用應用程式的資料夾管理專案。
- 選取「建立綜合監控項目」。
- 選取「無效連結檢查工具」範本。
- 輸入合成監控器的名稱。
選用:更新「回應逾時」和「檢查頻率」,並新增使用者定義的標籤。
設定要測試的 URI 和元素:
按一下「來源 URI」,然後輸入要測試的 URI。輸入的值必須是 HTTP 或 HTTPS 端點。舉例來說,您可以輸入
https://mywebsite.example.com
。選用:在「要追蹤的連結數量」中,更新要測試的連結數量上限。這個欄位的預設值為 10。
選用:在「HTML 元素選取器」欄位中,輸入要比對的 HTML 元素,並以半形逗號分隔。您輸入的值會轉換為字串,然後傳遞至
Document: querySelectorAll()
方法。這個欄位根據預設是設為
a
,與錨點相符。如要同時比對錨點和圖片,可以輸入a, img
等值。選用:在「要追蹤的 HTML 屬性」欄位中,輸入要比對的 HTML 屬性。您輸入的逗號分隔值會個別傳遞至
getAttribute()
方法。這個欄位根據預設是設為
href
,指定連結的 URI。你可以輸入多個屬性,例如輸入href, src
。在本範例中,程式碼會搜尋href
屬性,然後搜尋src
屬性。選用:設定等待選取器、每個 URI 的逾時、重試次數和預期狀態碼:
- 按一下「顯示更多選項」。
如要設定失效連結檢查工具,在擷取任何連結前,先等待特定選取器顯示在 URI 中,請在「Wait for element selector」(等待元素選取器) 欄位中輸入 CSS 選取器。您輸入的值會轉換為字串,然後傳遞至
page.waitForSelector()
方法。如果選取器在逾時前未顯示,系統就會在記錄中記錄失敗。
更新選取連結以進行測試的順序。
設定重試。
根據預設,系統會向每個連結傳送一項要求。如果初始要求因任何原因失敗 (例如指令逾時或 HTTP 狀態碼不是
200
),系統就會將連結標示為失敗。這個欄位可指定連結檢查工具向連結發出 HTTP 要求的次數,達到此次數後,系統就會將連結標示為失敗。
設定適用於每個 URI 的逾時。預設值為 30 秒。
如要為特定 URI 指定預期狀態碼和逾時時間,請按一下「新增每個連結的選項」並完成對話方塊。
選用:設定是否要收集及儲存回覆內容的螢幕截圖。如果使用預設設定,系統不會儲存螢幕截圖。 啟用螢幕截圖收集功能後,您可以收集所有測試的螢幕截圖,或只收集失敗測試的螢幕截圖。Cloud Monitoring 會使用下列慣例命名 Cloud Storage bucket:
gcm-PROJECT_ID-synthetics-LOCATION
在上述運算式中:
- PROJECT_ID:您的 Google Cloud 專案 ID。
- LOCATION:Cloud Storage bucket 的位置。
您可以選擇使用現有的 Cloud Storage 值區。
檢查設定,確認正確無誤且完整,然後建立 Cloud Run 函式:
按一下 [Create Function] (建立函式)。
按一下「建立函式」時,系統會將「URI 設定」欄位中的值複製到
index.js
檔案的Options
物件中。按一下「建立函式」後,如要變更設定,請編輯Options
物件。輸入顯示名稱並選取區域。區域內的名稱不得重複。
在「執行階段、建構作業、連線和安全性設定」專區中,執行下列操作:
在「Connections」(連線) 分頁中,確認已選取「Allow all traffic」(允許所有流量)。
查看預設設定,並視需要更新。
在「執行階段服務帳戶」欄位中,選取服務帳戶。
按一下「套用函式」。
設定快訊政策:
選用:更新快訊政策名稱,以及傳送通知前失敗的持續時間。
新增通知管道。
點選「建立」。
系統會建構並部署您定義的 Cloud Run 函式 (第 2 代),並建立綜合監控項目。
Terraform
如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。 詳情請參閱 Terraform供應商參考說明文件。
使用 Terraform 建立失效連結檢查工具的程序,與建立任何其他綜合監控工具的程序相同。如要瞭解如何使用 Terraform 建立合成監控器,請參閱「建立合成監控器」,然後選取「Terraform」分頁標籤。
斷開連結檢查工具會使用
broken-links-ok
範本。斷開連結檢查工具的設定是由index.js
檔案的options
物件指定。定義
options.screenshot_options
結構後,無效連結檢查工具會收集螢幕截圖,並儲存至 Cloud Storage 值區。如果未定義screenshot_options.storage_location
欄位,或值為空字串,則 Monitoring 會建立 Cloud Storage 值區,並將螢幕截圖儲存至該值區。Monitoring 會使用下列慣例命名 Cloud Storage bucket:gcm-PROJECT_ID-synthetics-LOCATION
在上述運算式中:
- PROJECT_ID:您的 Google Cloud 專案 ID。
- LOCATION:Cloud Storage bucket 的位置。
REST
使用 Cloud Monitoring API 建立失效連結檢查工具的程序,與建立任何其他合成監控項目的程序相同。如要瞭解如何使用 Cloud Monitoring API 建立合成監控器,請參閱「建立合成監控器」,然後選取「Cloud Monitoring」分頁標籤。
斷開連結檢查工具會使用
broken-links-ok
範本。斷開連結檢查工具的設定是由index.js
檔案的options
物件指定。定義
options.screenshot_options
結構後,無效連結檢查工具會收集螢幕截圖,並儲存至 Cloud Storage 值區。如果未定義screenshot_options.storage_location
欄位,或值為空字串,則 Monitoring 會建立 Cloud Storage 值區,並將螢幕截圖儲存至該值區。Monitoring 會使用下列慣例命名 Cloud Storage bucket:gcm-PROJECT_ID-synthetics-LOCATION
在上述運算式中:
- PROJECT_ID:您的 Google Cloud 專案 ID。
- LOCATION:Cloud Storage bucket 的位置。
查看結果
每次執行時,斷裂連結檢查工具都會執行下列動作:
生成表格,其中每一列提供特定 URI 的測試資訊。摘要資訊包括目標 URI、延遲時間、狀態和 HTML 元素 ID。舉例來說,測試 HTML 錨點元素時,這個資料欄會列出 a。如果資料列對應至來源 URI,HTML 元素 ID 的值為 -。
收集指標、追蹤記錄資料和記錄資料。
收集螢幕截圖 (如有設定)。
如要進一步瞭解如何探索收集到的資料,請參閱「探索綜合監控結果」。
疑難排解
本節提供相關資訊,協助您排解失效連結檢查工具的問題。
無法編輯失效連結檢查工具的設定
您使用 Google Cloud 控制台建立了失效連結檢查工具,現在想變更受測的 HTML 元素,或是修改 URI 超時、重試、等待選取器和每個連結的選項。不過,編輯失效連結檢查工具時, Google Cloud 控制台不會顯示設定欄位。
如要解決這項失敗問題,請按照下列步驟操作:
-
前往 Google Cloud 控制台的
「Synthetic monitoring」(綜合監控) 頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。
- 在 Google Cloud 控制台的工具列中,選取您的 Google Cloud 專案。如為「App Hub」設定,請選取 App Hub 主機專案或已啟用應用程式的資料夾管理專案。
- 找出要編輯的合成監控器,按一下「更多選項」more_vert,然後選取「編輯」。
- 按一下「編輯函式」。
編輯
index.js
檔案中的options
物件,然後按一下「套用函式」。如要瞭解這個物件的欄位和語法,請參閱
broken-links-ok/index.js
。按一下 [儲存]。
Google Cloud 控制台顯示螢幕截圖儲存失敗
您已建立無效連結檢查工具,並設定儲存螢幕截圖。不過, Google Cloud 控制台會顯示下列其中一個警告訊息,以及更詳細的資訊:
InvalidStorageLocation
StorageValidationError
BucketCreationError
ScreenshotFileUploadError
如要解決這些失敗問題,請嘗試下列做法:
如果看到
InvalidStorageLocation
訊息,請確認名為options.screenshot_options.storage_location
的欄位中指定的 Cloud Storage bucket 是否存在。查看與 Cloud Run function 相關的記錄。 詳情請參閱「尋找記錄」。
確認對應 Cloud Run 函式中使用的服務帳戶,是否具備可建立、存取及寫入 Cloud Storage 值區的 Identity and Access Management 角色。
後續步驟
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-07-14 (世界標準時間)。
-