本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
问题排查
已知问题解决方案提供了缓解已知错误的说明。如果这些说明无法解决您的问题,请联系 AWS Supp ort 提供有关如何为该解决方案提出 AWS Support 案例的说明。
已知问题解决方案
问题:您使用的是现有 VPC,并且测试失败,状态为 “失败”,从而导致出现以下错误消息:
Test might have failed to run.
-
解决方法:
确保子网存在于指定的 VPC 中,并且这些子网具有通过互联网网关或 NAT 网关到互联网的路由。AWS Fargate 需要访问权限才能从公共存储库中提取容器映像才能成功运行测试。
问题:测试运行时间太长或无法无限期运行
-
解决方法:
取消测试并检查 AWS Fargate,确保所有任务都已停止。如果他们尚未停止,请手动停止所有 Fargate 任务。检查您账户的按需 Fargate 任务限制,确保您可以启动所需数量的任务。您还可以查看 Lambda 任务运行器函数的 CloudWatch 日志,以更深入地了解启动 Fargate 任务时出现的故障。查看 CloudWatch ECS 日志,详细了解正在运行的 Fargate 容器中发生的事情。
问题:测试已开始但未能完成,或者 ECS 任务的状态未知
-
解决方法:
如果您选择了在部署解决方案的账户中提供现有 VPC 的选项,请确保 ECS 任务使用的 VPC 有足够的免费 IP 地址来启动测试输入中提供的任务数量。ECS 任务定义使用需要互联网网关或互联网路由的 ECR 映像,这样 EC S 服务就可以通过从 aws-load-testing-on-aws-load-testing-on-aws-load-testing-on-load-testing-on-load-solutions/distributed
问题:测试需要使用私有或无法通过 Internet 网关访问的端点
-
解决方法:
在测试无法通过互联网网关访问的私有 API 端点时,请考虑以下方法:
-
网络配置:确保将 ECS 任务使用的子网路由表更新为指向正在测试的私有终端节点 IP 地址范围的路由。这允许测试流量到达您的 VPC 内的私有终端节点。
-
DNS 解析:对于自定义域,请在您的 VPC 中配置 DNS 设置以解析私有终端节点的域名。有关详细说明,请参阅 VPC DNS 文档。
-
VPC 终端节点:如果测试 AWS 服务,请考虑使用 VPC 终端节点 (AWS PrivateLink) 建立私有连接。例如,要测试私有 API 网关,您可以为 API Gateway 创建 VPC 终端节点。参见私有 API Gateway 文档。
-
VPC 对等互连:如果私有终端节点位于其他 VPC 中,请在部署解决方案的 VPC 和包含私有终端节点的 VPC 之间建立 VPC 对等关系。在两个 VPC 中配置相应的路由表。请参阅 VPC 对等互连文档。
-
T@@ ransit Gateway:对于涉及多个 VPC 的更复杂的联网场景,可以考虑使用 AWS Transit Gateway 在解决方案的 VPC 和包含私有终端节点的 VPC 之间路由流量。请参阅 Transit Gateway 文档
-
安全组:确保与您的 ECS 任务关联的安全组允许私有终端节点的出站流量,并且私有终端节点的安全组允许来自 ECS 任务的入站流量。
要测试内部应用程序负载均衡器或 EC2 实例,请确保 VPC CIDR 范围不重叠,并在路由表中配置必要的路由。
问题:测试已完成,但用户界面上未显示结果
-
解决方法:
如果测试已完成,但用户界面中没有结果,则结果文件仍应位于运行测试的 ECS 任务的 S3 存储桶中。这是解决方案中的一个已知限制。在当前架构中,该解决方案使用结果解析 Lambda 函数来汇总多个 ECS 任务的结果,然后将这些结果作为一个项目存储在 DynamoDB 表中。DynamoDB 表的最大项目大小限制为 400 KB。是否达到此限制取决于测试脚本的复杂性、并发性和正在使用的任务数。该错误并不意味着测试失败;它表示汇总结果并将其存储在 DynamoDB 表中以进行 CRUD 操作的过程失败。测试场景的结果仍可在 S3 存储桶中找到。
ALB + ECS Fargate 部署问题
问题:ACM 证书验证停留在 “待验证” 状态
-
解决方法:
如果您使用 DNS 验证请求公有 ACM 证书,则必须将 ACM 提供的别名记录添加到您的 DNS 配置中。导航到 ACM 控制台
问题:部署后,Web 控制台返回 “502 网关错误” 或 “503 服务暂时不可用” 错误
-
解决方法:
在 EC2 控制台
问题:已配置 DNS 但自定义域无法解析到 Web 控制台
-
解决方法:
验证您的 DNS 提供商中是否正确配置了 CNAME 记录,将您的自定义域(例如console.example.com)映射到输出中的 ALB DNS 名称。 CloudFormation DNS 传播最多可能需要 48 小时,具体取决于您的 DNS 提供商和 TTL 设置。您可以使用dig console.example.com CNAME或验证 DNS 记录nslookup console.example.com。
问题:Web 控制台在部署后返回 “403 禁止” 错误
-
解决方法:
部署在 ALB 前面的 AWS WAF Web ACL 可能阻止了合法请求。打开 AWS WAF 控制台
无头(自带 Web 服务器)部署问题
问题:Web 控制台在连接到 API 时显示 CORS 错误
-
解决方法:
Cross-Origin 当您的域上托管的 Web 控制台尝试调用解决方案的 API Gateway 端点时,就会发生资源共享 (CORS) 错误。请确保您的网络服务器通过 HTTPS 为控制台提供服务,因为 API Gateway 端点需要 HTTPS。验证您的 Web 服务器的源域是否与 API Gateway CORS 设置中配置的允许来源相匹配。如果您使用的是自定义域,则可能需要更新 API Gateway CORS 配置以包含您的域。
问题:Web 控制台加载但身份验证失败或重定向不正确
-
解决方法:
Web 控制台资产包括一个包含 Cognito 用户池设置和 API 端点网址的配置文件。确认在解压缩期间未修改此配置文件。请确保您的网络服务器通过 HTTPS 为控制台提供服务,因为 Cognito 要求回传网址使用 HTTPS。检查 Cognito 应用程序客户端回传 URL 是否包含您的 Web 服务器的域名。