Lattice 故障排除指南
解决 Amazon VPC Lattice 的常见问题和错误
云专用目前处于邀请制预览。如果您想请求访问或有任何问题或反馈,请不要犹豫。
参考 配置页面了解如何配置 AWS VPC Lattice 以将流量发送到您的 子图。
启用子图错误包含
为了帮助解决 AWS VPC Lattice 连接问题,请为您图样的 变种启用 子图 错误包含。此配置可以查看子图生成的错误信息。按照以下步骤设置配置:
- 进入 GraphOS Studio。
- 从左侧导航打开 云路由 页面。
- 打开 配置 选项卡。
- 在 路由配置 YAML 中,确保您的配置包含以下配置块:
include_subgraph_errors:all: true
- 点击该部分的右上角 保存 按钮。
配置更改将触发一个新的启动。请等待几分钟,让您的云路由器更新为新配置。您可以在其启动页面
一旦您找到并解决了问题,Apollo建议关闭subgraph错误包括。为此,请删除include_subgraph_errors
配置。然后,保存路由器的YAML配置。
常见问题和错误
如果您遇到以下未列出的错误并需要帮助,请不要犹豫,与您的Apollo联系人联系。我们在这里帮助。
覆盖 host
标题
Amazon VPC Lattice依靠host
标题来保护并路由请求。在云Dedicated上,您不能更改此标题。相反,请考虑使用像x-host
这样的标题。您可以通过以下方式重写传入的标题 purchases路由器配置 YAML:
# ...other configuration...headers:all: # Header rules for all subgraphsrequest:- propagate:named: 'host'rename: 'x-host'
以下示例将host
标题重命名为x-host
。
资源共享中服务不在私有子图显示
云Dedicated不会自动扫描您的资源共享以查找新的Lattice服务。添加子图或创建新图自动触发对新Lattice服务的扫描。如果您看不到您的图的最新资源共享,请联系我们以获取支持。这里获取。
提供 Authorization
标题
由于AWS Sigv4依赖于HTTP Authorization
请求头来实现签名请求,您可能会收到如下错误:您必须经过身份验证才能访问此资源。请在其Authorization头中提供有效的Bearer Token。
如果您的子图依赖于Authorization
头进行身份验证,则您的路由器必须重命名它。例如:
# ...other configuration...headers:all: # Header rules for all subgraphsrequest:- propagate:named: 'Authorization'rename: 'X-Authorization'
然后,更新您的子图以检查Authorization
或您的新头名称。
尝试连接时出错:由对等端重置连接(OS错误104)
此错误可能在您的云路由器尝试将流量发送到与AWS VPC Lattice服务上的监听器不同的端口号时发生。Apollo GraphOS Cloud只支持在端口443上通过HTTPS与私有子图通信。
您可以在某个服务的路由页面检查Lattice服务是否已配置为在有正确端口的流量:
- 在您选择的区域中,打开AWS控制台的VPC服务页面。
- 在左侧导航中,向下滚动并打开VPC Lattice > 服务。
- 点击有问题的子图使用的Lattice服务。
- 点击路由选项卡。
- 确认您有一个具有协议:端口号配置的监听器,配置为HTTPS:443。
如果还没有,您必须通过单击此部分右上角的添加监听器按钮创建一个新的监听器。有关详细信息,请参阅在创建Lattice服务步骤10。
从 '_子图_': 403: 禁止
此错误可能是以下原因之一
- 您的客户端之一正通过WebSocket将订阅请求发送到私有子图。
- VPC Lattice IAM策略不允许来自Apollo GraphOS Cloud的流量。
通过WebSocket进行的订阅
订阅 通过WebSocket在AWS VPC Lattice中不支持,因为该平台目前尚未支持WebSocket。缺少WebSocket支持。当发送请求以升级到WebSocket连接时,Lattice返回一个带有403响应代码的空响应。在这种情况下,Lattice也不会向Amazon CloudWatch Logs发出访问日志条目。联系您的AWS账户团队告知他们您对这一功能的兴趣。
VPC Lattice IAM策略
您可以在服务的访问页面上检查Lattice服务是否配置为允许来自Apollo GraphOS Cloud的流量:
- 在您选择的区域中,打开AWS控制台的VPC服务页面。
- 在左侧导航中,向下滚动并打开VPC Lattice > 服务。
- 点击有问题的子图使用的Lattice服务。
- 单击访问选项卡。
- 确保Auth类型设置为IAM并且策略看起来像这样:
{"Version": "2012-10-17","Statement": [{"Effect": "Allow","Principal": "*","Action": "vpc-lattice-svcs:Invoke","Resource": "*","Condition": {"ForAnyValue:StringLike": {"aws:PrincipalOrgPaths": "o-9vaxczew6u/*/ou-leyb-l9pccq2t/ou-leyb-fvqz35yo/*"}}}]}