View a markdown version of this page

AgentCore 瀏覽器故障診斷 - Amazon Bedrock AgentCore

AgentCore 瀏覽器故障診斷

本節提供使用 Amazon Bedrock AgentCore 瀏覽器時可能遇到的常見問題的解決方案。

拒絕許可錯誤

徵狀:提及存取遭拒或許可不足的錯誤。

解決方案

  • 確認您的 IAM 使用者或角色具有必要的瀏覽器許可

  • 檢查您的 AWS 登入資料: aws sts get-caller-identity

  • 用於錄製:驗證執行角色具有 Amazon S3 寫入許可

  • 對於記錄:確認信任政策允許 bedrock-agentcore.amazonaws.com擔任角色

拒絕模型存取

徵狀:執行代理程式時模型存取或授權的錯誤。

解決方案

  • 導覽至 Amazon Bedrock 主控台

  • 前往左側導覽中的模型存取

  • 啟用 Anthropic Claude Sonnet 4

  • 確認您位於正確的區域 (符合您程式碼中的區域)

瀏覽器工作階段逾時

徵狀:瀏覽器工作階段意外結束或發生逾時錯誤。

解決方案

  • 啟動工作階段時檢查 sessionTimeoutSeconds 參數

  • 預設逾時為 900 秒 (15 分鐘)

  • 延長較長工作階段的逾時: sessionTimeoutSeconds=1800

  • 工作階段會在逾時期間後自動停止

Amazon S3 中未顯示錄製

徵狀:工作階段完成後,Amazon S3 儲存貯體中不會記錄檔案。

解決方案

  • 確認執行角色具有正確的 Amazon S3 許可

  • 確認 Amazon S3 儲存貯體名稱和字首正確無誤

  • 檢查執行角色信任政策包含 bedrock-agentcore 服務

  • 檢閱 Amazon S3 上傳錯誤的 CloudWatch Logs

  • 確保工作階段執行至少幾秒鐘 (非常短的工作階段可能不會產生錄製)

Playwright 連線錯誤

徵狀:無法使用 Playwright 或 WebSocket 錯誤連線到瀏覽器。

解決方案

  • 確認您已安裝 playwright: pip install playwright

  • 在連線之前確認瀏覽器工作階段已成功啟動

  • 檢查工作階段是否仍處於作用中狀態 (未逾時)

  • 驗證您的網路是否允許 WebSocket 連線

由於 CAPTCHA 檢查,客服人員無法進行進度

問題:使用瀏覽器工具與網站互動時,CAPTCHA 驗證會封鎖您的代理程式。

原因:熱門網站上的反機器人措施會偵測自動瀏覽,且需要人工驗證。

解決方案:建構您的代理程式以避免搜尋引擎並實作下列架構模式:

  • 僅針對特定頁面動作使用瀏覽器工具,而非一般 Web 搜尋

  • 使用非瀏覽器 MCP 工具,例如 Tavily 搜尋一般 Web 搜尋操作

  • 考慮將即時檢視功能新增至您的代理程式應用程式,以允許最終使用者在需要時控制和解決 CAPTCHAs

與瀏覽器應用程式整合時發生 CORS 錯誤

問題:建立瀏覽器型 Web 應用程式來呼叫自訂 Amazon Bedrock AgentCore 執行時間伺服器時,會發生跨來源資源共用 (CORS) 錯誤。

原因:瀏覽器安全政策會在本機開發或自我託管部署期間封鎖對執行期伺服器的跨來源請求。

解決方案:將 CORS 中介軟體新增至 BedrockAgentCoreApp,以處理來自前端的跨來源請求:

from bedrock_agentcore.runtime import BedrockAgentCoreApp from fastapi.middleware.cors import CORSMiddleware app = BedrockAgentCoreApp() # Add CORS middleware to allow browser requests app.add_middleware( CORSMiddleware, allow_origins=["*"], # Customize in production allow_credentials=True, allow_methods=["*"], allow_headers=["*"], ) # Handle browser preflight requests to /invocations @app.options("/invocations") async def options_handler(): return {"message": "OK"} @app.entrypoint def my_agent(payload): return {"response": "Hello from agent"}
重要

在生產環境中,將 allow_origins=【"*"】 取代為特定網域原始伺服器,以提高安全性。

工作階段重播和 Web Bot Auth 無法在新的瀏覽器視窗或內容中運作

問題:當您的自動化程式碼建立新的瀏覽器視窗或內容時,工作階段重播和 Web Bot Auth 功能無法使用。

原因:這些功能依賴僅在 Amazon Bedrock AgentCore 提供的預設瀏覽器內容中運作的瀏覽器延伸模組。當您使用 Playwright browser.new_context()中的 等方法建立新的內容時,擴充功能無法使用。

解決方案:使用您連線至瀏覽器工作階段時提供的預設瀏覽器內容。如果您需要工作階段重播或 Web Bot Auth 功能,請避免建立新的內容或視窗。

# ✓ Use the existing default context context = browser.contexts[0] page = context.pages[0] # ✗ Don't create new contexts - Session Replay and Web Bot Auth won't work # context = browser.new_context()

瀏覽器擴充功能問題

延伸模組下載失敗,存取遭拒

徵狀:使用擴充功能時,工作階段無法從與 Amazon S3 存取相關的錯誤開始。

解決方案

  • 驗證您的 IAM 使用者或角色對延伸儲存貯體具有 s3:GetObjects3:GetObjectHead許可

  • 確認 Amazon S3 儲存貯體為進行 API 呼叫的相同 AWS 帳戶所擁有

  • 檢查儲存貯體名稱和字首 (物件金鑰) 是否正確

  • 如果使用版本控制的儲存貯體,請確定您具有 s3:GetObjectVersion 許可

由於格式無效而拒絕延伸模組

徵狀:工作階段無法從有關延伸檔案格式的驗證錯誤開始。

解決方案

  • 確保副檔名是 ZIP 格式

  • 驗證 ZIP 檔案包含具有有效manifest.json檔案的有效 Chrome 副檔名結構

  • 檢查延伸模組是否遵循 Chrome 延伸模組準則

  • 確保 ZIP 是從延伸目錄內容建立的,而不是父資料夾

瀏覽器設定檔問題

由於設定檔上的並行操作,無法儲存瀏覽器工作階段設定檔

徵狀:SaveBrowserSessionProfile擲回 ConflictException

解決方案

  • SaveBrowserSessionProfile 稍後重試

  • 如果從代理程式或程式碼重試,請使用指數退避與抖動

由於工作階段上的並行操作,無法儲存瀏覽器工作階段設定檔

徵狀:SaveBrowserSessionProfile擲回 ConflictException

解決方案

  • SaveBrowserSessionProfile 稍後重試

  • 如果從代理程式或程式碼重試,請使用指數退避與抖動

載入儲存的瀏覽器設定檔時,身分驗證失敗

徵狀:從已儲存設定檔載入的瀏覽器工作階段需要重新驗證,即使設定檔是以有效的身分驗證 Cookie 儲存。

原因:存放在瀏覽器設定檔中的 Cookie 已過期。網站會設定 Cookie 的過期時間 (例如身分驗證字符),瀏覽器會根據這些過期日期自動移除過期的 Cookie。當您載入設定檔時,任何自設定檔儲存後已過期的 Cookie 都將無法使用。

解決方案

  • 在瀏覽器工作階段中重新驗證以取得新的 Cookie

  • 重新驗證後再次儲存設定檔,以使用新的 Cookie 進行更新

  • 對於需要長期身分驗證的工作流程,在規劃設定檔用量時,請考慮目標網站的典型 Cookie 生命週期

  • 如果預期 Cookie 過期,請在自動化工作流程中實作定期重新驗證

  • 更頻繁地儲存關鍵身分驗證狀態的設定檔,以盡量減少儲存和後續使用之間的時間

注意

Cookie 過期時間由網站設定,無法由瀏覽器設定檔修改。工作階段 Cookie 通常會在瀏覽器工作階段結束時過期,而持久性 Cookie 會根據其 Max-Age 或 Expires 屬性過期。

根憑證授權機構問題的故障診斷

下表說明設定 Amazon Bedrock AgentCore 瀏覽器的根 CA 憑證時的常見錯誤及其解決方法。

錯誤 原因 Resolution

在 Secrets Manager 中找不到憑證秘密

秘密 ARN 不存在或秘密已刪除。

確認秘密 ARN 正確,且秘密存在於指定的區域中。

Secrets Manager 中對憑證秘密的存取遭拒

發起人沒有秘密的secretsmanager:GetSecretValue許可。

secretsmanager:GetSecretValue許可新增至指定秘密 ARN 的 IAM 政策。

憑證內容不是有效的 PEM/X.509 格式

秘密值不是有效的 PEM 編碼 X.509 憑證。

確保秘密包含以 開頭-----BEGIN CERTIFICATE-----和結尾的正確格式 PEM 憑證-----END CERTIFICATE-----

憑證已過期

憑證notAfter的日期是過去的日期。

將過期的憑證取代為 AWS Secrets Manager 中的有效憑證,然後重試。

憑證尚無效

憑證notBefore的日期是未來的日期。

等到憑證的有效期開始,或使用目前有效的憑證。

憑證數量超過允許的上限

在工作階段層級或工具層級提供超過 10 個憑證。

將憑證數量減少為每個工作階段 10 個或更少,以及每個工具 10 個或更少。

憑證位置為必填

提供的憑證項目沒有位置。

確保陣列中的每個憑證都包含一個 location,其中包含一個包含有效 secretsManager的項目secretArn

未啟用憑證組態

您的帳戶未啟用憑證功能。

請聯絡 AWS Support 以啟用您帳戶的憑證功能。

瀏覽器代理程式故障診斷

使用代理啟動工作階段時發生錯誤

徵狀: StartBrowserSession傳回 HTTP 400 錯誤,其中包含開頭為 的訊息Failed to set up browser proxy:

原因:代理組態或登入資料秘密無效。

解決方案

  • Proxy credentials secret not found in Secrets Manager – 秘密 ARN 不符合目標帳戶和區域中的任何秘密。確認 ARN 正確,且秘密尚未刪除或排定刪除。

  • Invalid proxy credentials secret configuration (check encryption key for cross-account access) – 秘密存在,但無法存取。確保呼叫身分具有 secretsmanager:GetSecretValue 許可。如需跨帳戶秘密,請參閱跨帳戶秘密存取

  • Proxy credentials secret must be a JSON object with username and password fields – 將秘密值更新為有效的 JSON 物件:{"username": "…​", "password": "…​"}

  • Failed to parse proxy credentials from secret – 秘密值無法讀取為代理登入資料。驗證秘密是否包含具有 usernamepassword 欄位的純 JSON 字串 (非二進位)。

  • Field 'username' is missing or empty in secretField 'password' is missing or empty in secret – 確保秘密中同時password存在 username和 且不空白。

  • Field 'username' contains invalid charactersField 'password' contains invalid characters – 僅使用錯誤訊息中列出的字元。如需允許的字元,請參閱步驟 1:建立登入資料秘密 (如果使用身分驗證)

  • Field 'username' exceeds maximum length of 256 charactersField 'password' exceeds maximum length of 256 characters – 將登入資料縮短為 256 個字元或更少。

瀏覽器中的 Proxy 連線錯誤

徵狀:瀏覽器工作階段已成功啟動,但出現 HTTP 502 錯誤或 的代理網域的頁面導覽失敗net::ERR_INVALID_AUTH_CREDENTIALS

原因:瀏覽器無法連線至代理伺服器,或代理伺服器拒絕提供的登入資料。這些是 Chromium 網路錯誤,而不是 AWS API 錯誤。

解決方案

  • 代理頁面上的 HTTP 502 – 驗證代理主機名稱、連接埠,以及伺服器是否正在執行並從公有網際網路 (如果使用 VPC 組態,則為 VPC) 連線。

  • net::ERR_INVALID_AUTH_CREDENTIALS – 使用代理伺服器的有效登入資料更新 Secrets Manager 中的秘密。

  • 使用 GetBrowserSession 確認作用中的代理設定。絕對不會在回應中傳回登入資料。

注意

這些錯誤會顯示在即時檢視中,並透過自動化 API 顯示。

對 InvokeBrowser 作業系統動作進行故障診斷

下表說明針對作業系統層級瀏覽器動作使用 InvokeBrowser API 時的常見錯誤。

異常情形 HTTP 代碼 說明

ValidationException

400

輸入無效。對於以座標為基礎的動作 mouseClick (mouseMove、、mouseDragmouseScroll),座標必須嚴格位於工作階段檢視區邊界內 (1 < x < viewportWidth-2、1 < y < viewportHeight-2)。預設檢視區大小為 1456 × 819 像素。也會針對已停用的動作或無效的參數值傳回 。

AccessDeniedException

403

工作階段不允許的許可或動作不足。

ResourceNotFoundException

404

無效 browserIdentifiersessionId

ServiceQuotaExceededException

402

已超過服務配額。

ThrottlingException

429

超過速率限制。

InternalServerException

500

執行中未預期的失敗。

解決方案

  • 確認座標值位於工作階段檢視區維度內。使用 screenshot動作來擷取目前的畫面並確認可見區域。

  • 檢查瀏覽器工作階段是否仍處於作用中狀態且尚未逾時。

  • 確保您的 IAM 身分具有 bedrock-agentcore:InvokeBrowser許可。