要排查阻止应用程序连接到 Amazon Bedrock 端点的网络或连接问题,首先要验证您的网络配置和 AWS 服务权限。 首先,检查应用程序的环境(例如,EC2 实例、Lambda 函数或本地服务器)是否具有正确的出站互联网访问权限或为 Bedrock 配置的 VPC 端点。 例如,如果您的应用程序在私有子网中运行,请确保它具有 NAT 网关、VPC 端点或通过公共子网的直接互联网访问权限。 安全组和网络 ACL 必须允许到 Bedrock 端点的出站 HTTPS 流量(端口 443)。 此外,请确认您的 AWS Identity and Access Management (IAM) 角色或用户是否具有 bedrock:InvokeModel
权限,并且您的 AWS 账户中是否启用了 Bedrock(默认情况下处于禁用状态)。 一个常见的疏忽是在进行 API 调用之前忘记通过 AWS 管理控制台或 CLI 启用 Bedrock。
接下来,直接测试与 Bedrock 端点的连接。 使用诸如 curl
、telnet
或 nslookup
之类的工具来验证 DNS 解析和可达性。 例如,运行 nslookup bedrock.us-east-1.amazonaws.com
会检查您的 DNS 是否正确解析了端点。 如果 DNS 解析失败,则您的网络可能会阻止 AWS 端点,或者您可能需要配置 DNS 解析器。 如果端点可达但返回错误,请检查 HTTP 状态代码和错误消息。 例如,403 Forbidden
错误表示 IAM 权限问题,而超时则表示网络阻塞。 暂时禁用防火墙、代理或内容过滤器以排除它们作为阻止程序。 如果您的应用程序在企业环境中运行,请确保 AWS 端点不受组织策略的限制。 您还可以使用 AWS CLI 进行测试:aws bedrock list-foundation-models --region us-east-1
验证权限和连接性。
最后,监控流量和日志以隔离问题。 启用 VPC 流日志以跟踪到 Bedrock IP 范围的出站请求,您可以在 AWS 发布的 IP 地址范围中找到这些范围。 查找指示网络级别阻止的 REJECTED
条目。 检查 CloudTrail 日志中 Bedrock API 活动 - 如果未记录请求,则问题可能发生在到达 AWS 之前(例如,网络配置错误)。 对于使用 AWS SDK 的应用程序,启用调试日志记录以捕获重试、超时或 SSL 握手失败。 例如,在 Python 的 Boto3 中设置 AWS_DEBUG
环境变量可以显示 SSL 证书不匹配或代理配置错误。 如果问题仍然存在,请从不同的环境(例如,具有开放安全组的临时 EC2 实例)进行测试,以确定该问题是否特定于环境。 如果所有其他方法都失败,请查看 AWS 服务运行状况控制面板以了解区域 Bedrock 中断,并使用相关日志和错误详细信息联系 AWS 支持。