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 中的证书密钥的访问被拒绝 |
来电者没有密钥的 |
将指定机密 ARN 的 |
|
证书内容 PEM/X.509 格式无效 |
密钥值不是有效的 PEM-encoded X.509 证书。 |
确保密钥包含格式正确的 PEM 证书,开头 |
|
证书已过期 |
证书的 |
在 S AWS ecrets Manager 中将过期的证书替换为有效的证书,然后重试。 |
|
证书尚未生效 |
证书的 |
等到证书的有效期开始,或者使用当前有效的证书。 |
|
证书数量超过允许的最大值 |
在会话级别或工具级别提供了 10 多个证书。 |
将每个会话的证书数量减少到 10 个或更少,将每个工具的证书数量减少到 10 个或更少。 |
|
证书位置为必填项 |
提供的证书条目没有地点。 |
确保阵列中的每个证书都包含一个 |
|
证书配置未启用 |
您的账户未启用证书功能。 |
请联系 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— 密钥值无法作为代理凭据读取。验证密钥是否包含带有username和password字段的纯 JSON 字符串(不是二进制字符串)。 -
Field 'username' is missing or empty in secret或Field 'password' is missing or empty in secret— 确保密钥中同时password存在username和且非空。 -
Field 'username' contains invalid characters或Field 'password' contains invalid characters-仅使用错误消息中列出的字符。参见步骤 1:为允许的字符创建凭据密钥(如果使用身份验证)。 -
Field 'username' exceeds maximum length of 256 characters或Field '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 代码 | 说明 |
|---|---|---|
|
|
400 |
输入无效。对于基于坐标的操作( |
|
|
403 |
权限不足,不允许该会话执行操作。 |
|
|
404 |
无效 |
|
|
402 |
已超过服务配额。 |
|
|
429 |
已超出速率限制。 |
|
|
500 |
执行中出现意外失败。 |
解决方案:
-
验证坐标值是否在会话视口尺寸内。使用
screenshot操作捕捉当前屏幕并确认可见区域。 -
检查浏览器会话是否仍处于活动状态且未超时。
-
确保您的 IAM 身份拥有
bedrock-agentcore:InvokeBrowser权限。