View a markdown version of this page

AgentCore 浏览器疑难解答 - Amazon Bedrock AgentCore

AgentCore 浏览器疑难解答

本节提供您在使用 Amazon Bed AgentCore rock 浏览器时可能遇到的常见问题的解决方案。

权限被拒绝错误

症状:错误提及访问被拒绝或权限不足。

解决方案:

  • 验证您的 IAM 用户或角色是否具有所需的浏览器权限

  • 检查您的 AWS 凭证:aws sts get-caller-identity

  • 用于录制:验证执行角色是否具有 Amazon S3 写入权限

  • 用于录制:确认信任策略bedrock-agentcore.amazonaws.com允许担任该角色

访问模型被拒

症状:运行代理时出现模型访问或授权错误。

解决方案:

  • 导航到 Amazon Bedrock 控制台

  • 前往左侧导航栏中的模型访问权限

  • 启用 Anthropic Claude Son

  • 确认您位于正确的区域(匹配代码中的区域)

浏览器会话超时

症状:浏览器会话意外结束或出现超时错误。

解决方案:

  • 启动会话时请检查sessionTimeoutSeconds参数

  • 默认超时时间为 900 秒(15 分钟)

  • 延长较长会话的超时时间:sessionTimeoutSeconds=1800

  • 超时时间过后,会话会自动停止

Amazon S3 中未显示录音

症状:会话完成后,您的 Amazon S3 存储桶中没有录制文件。

解决方案:

  • 验证执行角色是否具有正确的 Amazon S3 权限

  • 确认 Amazon S3 存储桶名称和前缀正确无误

  • 查看执行角色信任政策包括 bedrock-agentcore 服务

  • 查看 CloudWatch 日志,了解 Amazon S3 上传错误

  • 确保会话至少运行几秒钟(非常短的会话可能无法生成录音)

剧作家连接错误

症状:无法通过 Playwright 或 WebSocket 错误连接到浏览器。

解决方案:

  • 确认你安装了剧作家:pip install playwright

  • 在连接之前确认浏览器会话已成功启动

  • 检查会话是否仍处于活动状态(未超时)

  • 验证您的网络是否允许 WebSocket 连接

由于验证码检查,代理无法取得进展

问题:使用浏览器工具与网站交互时,您的代理被验证码验证屏蔽。

原因:热门网站上的 Anti-bot 措施会检测到自动浏览并需要人工验证。

解决方案:构建代理以避开搜索引擎,并实现以下架构模式:

  • 浏览器工具仅用于特定的页面操作,而不能使用一般的网络搜索

  • 使用像 Tavily 这样的非浏览器 MCP 工具进行一般的网络搜索操作

  • 考虑在代理应用程序中添加实时查看功能,允许最终用户在需要时控制和解析验证码

与浏览器应用程序集成时出现 CORS 错误

问题:构建调用自定义 Amazon Bed AgentCore rock 运行时服务器的基于浏览器的 Web 应用程序时,会出现 Cross-Origin 资源共享 (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 身份验证在新的浏览器窗口或上下文中不起作用

问题:当您的自动化代码创建新的浏览器窗口或上下文时,会话重播和 Web Bot 身份验证功能不可用。

原因:这些功能依赖于只能在 Amazon Bedrock AgentCore 提供的默认浏览器环境中运行的浏览器扩展。当你使用像 Playwright 这样的browser.new_context()方法创建新的上下文时,扩展不可用。

解决方案:使用连接到浏览器会话时提供的默认浏览器上下文。如果您需要会话重播或 Web Bot 身份验证功能,请避免创建新的上下文或窗口。

# ✓ 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:GetObject扩展存储桶的s3:GetObjectHead权限

  • 确认 Amazon S3 存储桶归调用 API 的同一个 AWS 账户所有

  • 检查存储桶名称和前缀(对象密钥)是否正确

  • 如果使用受版本控制的存储桶,请确保您拥有权限 s3:GetObjectVersion

由于格式无效,扩展名被拒绝

症状:由于扩展文件格式存在验证错误,会话无法启动。

解决方案:

  • 确保扩展文件采用 ZIP 格式

  • 验证 ZIP 文件是否包含有效的 Chrome 扩展结构和有效的manifest.json文件

  • 检查该扩展程序是否符合 Chrome 扩展程序指南

  • 确保 ZIP 文件是根据扩展目录的内容创建的,而不是父文件夹

浏览器配置文件问题

由于对配置文件进行并行操作,无法保存浏览器会话配置文件

症状:SaveBrowserSessionProfile投掷。ConflictException

解决方案:

  • 请稍SaveBrowserSessionProfile后重试

  • 如果从代理或代码重试,请使用带有抖动的指数退避

由于会话并行操作,无法保存浏览器会话配置文件

症状:SaveBrowserSessionProfile投掷。ConflictException

解决方案:

  • 请稍SaveBrowserSessionProfile后重试

  • 如果从代理或代码重试,请使用带有抖动的指数退避

加载已保存的浏览器配置文件时身份验证失败

症状:从已保存的配置文件加载的浏览器会话需要重新进行身份验证,即使该配置文件是使用有效的身份验证 Cookie 保存的。

原因:存储在浏览器配置文件中的 Cookie 已过期。网站对 Cookie(例如身份验证令牌)设置过期时间,浏览器会根据这些到期日期自动删除过期的 Cookie。加载配置文件时,自保存配置文件后已过期的任何 Cookie 都将不可用。

解决方案:

  • Re-authenticate 在浏览器会话中获取新的 Cookie

  • 重新认证后再次保存配置文件以使用新 Cookie 进行更新

  • 对于需要长期身份验证的工作流程,在计划使用个人资料时,请考虑目标网站的典型Cookie生命周期

  • 如果 Cookie 预计会过期,则在您的自动化工作流程中实施定期重新身份验证

  • 更频繁地保存关键身份验证状态的配置文件,以最大限度地缩短保存和后续使用之间的时间

注意

Cookie 过期时间由网站设置,浏览器配置文件无法修改。会话 Cookie 通常在浏览器会话结束时过期,而持久 Cookie 会根据其 Max-Age 或过期属性过期。

根证书颁发机构问题疑难解答

下表描述了为 Amazon Bedrock B AgentCore rowser 配置根 CA 证书时的常见错误及其解决方法。

错误 原因 解决方案

在 Secrets Manager 中找不到证书密钥

密钥 ARN 不存在或密钥已被删除。

验证密钥 ARN 是否正确且该密钥存在于指定区域中。

对 Secrets Manager 中的证书密钥的访问被拒绝

来电者没有密钥的secretsmanager:GetSecretValue权限。

将指定机密 ARN 的secretsmanager:GetSecretValue权限添加到您的 IAM 策略中。

证书内容 PEM/X.509 格式无效

密钥值不是有效的 PEM-encoded X.509 证书。

确保密钥包含格式正确的 PEM 证书,开头-----BEGIN CERTIFICATE-----和结尾均为-----END CERTIFICATE-----

证书已过期

证书的notAfter日期已过去。

在 S AWS ecrets Manager 中将过期的证书替换为有效的证书,然后重试。

证书尚未生效

证书的notBefore日期是将来的日期。

等到证书的有效期开始,或者使用当前有效的证书。

证书数量超过允许的最大值

在会话级别或工具级别提供了 10 多个证书。

将每个会话的证书数量减少到 10 个或更少,将每个工具的证书数量减少到 10 个或更少。

证书位置为必填项

提供的证书条目没有地点。

确保阵列中的每个证书都包含一个location,其secretsManager条目包含有效的证书secretArn

证书配置未启用

您的账户未启用证书功能。

请联系 Su AWS pport 为您的账户启用证书功能。

浏览器代理疑难解答

使用代理启动会话时出错

症状: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获得许可。有关跨账户密钥,请参阅Cross-account 秘密访问权限

  • 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 个字符或更少。

浏览器中的代理连接错误

症状:浏览器会话成功启动,但是出现了 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 进行 OS-level 浏览器操作时的常见错误。

例外 HTTP 代码 说明

ValidationException

400

输入无效。对于基于坐标的操作(mouseClick、、mouseMovemouseDragmouseScroll),坐标必须严格在会话视口范围内(1 < x < viewport,1 < y < viewportWidth-2,1 < y < viewport)。Height-2默认视口大小为 1456×819 像素。对于已禁用的操作或无效的参数值,也会返回。

AccessDeniedException

403

权限不足,不允许该会话执行操作。

ResourceNotFoundException

404

无效browserIdentifiersessionId

ServiceQuotaExceededException

402

已超过服务配额。

ThrottlingException

429

已超出速率限制。

InternalServerException

500

执行中出现意外失败。

解决方案:

  • 验证坐标值是否在会话视口尺寸内。使用screenshot操作捕捉当前屏幕并确认可见区域。

  • 检查浏览器会话是否仍处于活动状态且未超时。

  • 确保您的 IAM 身份拥有bedrock-agentcore:InvokeBrowser权限。