You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Java连接DynamoDB时的java.net.SocketTimeoutException: Connect timed out

解决DynamoDB putItem操作连接超时问题

针对你遇到的putItem操作连接dynamodb.ca-central-1.amazonaws.com:443超时的问题,可按以下步骤排查解决:

1. 验证网络连通性

  • 在应用运行环境执行网络测试,确认能访问DynamoDB端点:
    • 用telnet dynamodb.ca-central-1.amazonaws.com 443测试连接,若失败说明网络层面存在阻断。
    • 或执行curl -v https://dynamodb.ca-central-1.amazonaws.com查看连接细节,判断是DNS解析失败还是防火墙拦截。
  • 排查本地防火墙、公司网络策略,确保允许出站访问443端口到DynamoDB的ca-central-1区域地址。

2. 检查AWS SDK配置

  • 确认区域配置正确:确保SDK初始化时指定的区域为ca-central-1,错误区域会指向无效端点导致连接失败。以Java SDK为例:
    DynamoDbClient client = DynamoDbClient.builder()
        .region(Region.CA_CENTRAL_1)
        .build();
    
  • 调整超时参数:默认的连接/套接字超时可能过短,适当调大参数避免超时:
    DynamoDbClient client = DynamoDbClient.builder()
        .region(Region.CA_CENTRAL_1)
        .httpClientBuilder(UrlConnectionHttpClient.builder()
            .connectionTimeout(Duration.ofSeconds(10))
            .socketTimeout(Duration.ofSeconds(30)))
        .build();
    

3. VPC环境下的额外排查

如果应用部署在AWS VPC内:

  • 配置VPC端点:优先使用DynamoDB的VPC网关端点,避免通过互联网访问,提升稳定性。
  • 检查路由表与安全组:
    • 子网路由表需包含互联网访问路由(如NAT网关),或指向DynamoDB VPC端点的路由。
    • 安全组出站规则需允许访问443端口,目标可设为0.0.0.0/0或DynamoDB服务的IP段。

4. 代理配置检查

若环境需通过代理访问互联网,需在SDK中配置代理参数:

DynamoDbClient client = DynamoDbClient.builder()
    .region(Region.CA_CENTRAL_1)
    .httpClientBuilder(UrlConnectionHttpClient.builder()
        .proxyConfiguration(ProxyConfiguration.builder()
            .endpoint(URI.create("http://your-proxy-address:port"))
            .build()))
    .build();

5. 确认AWS服务状态

检查AWS官方状态页面,确认ca-central-1区域的DynamoDB服务是否正常运行,排除服务端故障导致的连接问题。

内容的提问来源于stack exchange,提问作者IceBane

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 20:02:45