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

AWS App Runner运行Docker镜像无出站网络访问问题咨询

问题根因说明

你遇到的ExtendedSocketException: Resource temporarily unavailable报错并非App Runner限制了套接字数量,也无法通过Dockerfile调整网络模式解决——AWS App Runner作为全托管容器服务,不支持用户自定义容器网络模式,所有网络配置均需在App Runner服务控制台调整,本次报错的核心原因是App Runner运行环境无法解析你数据库的主机地址。


解决步骤

情况1:使用AWS内部托管数据库(RDS/Aurora等私网部署的资源)

默认App Runner运行在AWS公有托管VPC中,无法访问你私有VPC内的数据库资源,需按以下步骤配置VPC对接:

  • 进入App Runner对应服务的控制台,打开「网络」配置页
  • 网络出口选择「自定义VPC」,选择数据库所在的VPC、私有子网
  • 关联安全组,确保安全组的出站规则放行了:
    • 目标为数据库安全组/IP,端口为数据库服务端口(如MySQL 3306、PostgreSQL 5432、SQL Server 1433)
    • 目标为0.0.0.0/0的53端口UDP/TCP(用于DNS解析)
  • 确认数据库侧的安全组入站规则放行App Runner关联安全组的访问请求

情况2:使用公网可访问的数据库

  • 检查App Runner网络配置是否允许公网出站,默认配置是允许公网访问,若之前自定义过VPC配置请确认子网有公网路由、关联了NAT网关
  • 核对数据库连接字符串的主机名是否拼写正确,本地配置过hosts的域名无法在App Runner环境直接使用

可选:.NET运行时配置优化

如果调整网络后仍有偶发报错,可以修改代码调整DNS缓存策略,避免过时DNS记录导致解析失败:

// 在Program.cs启动入口添加
System.Net.ServicePointManager.DnsRefreshTimeout = 120000;

同时确认你的数据库连接是复用连接池,不要每次请求都新建数据库连接实例,避免不必要的套接字占用。


你的Dockerfile无需调整网络相关配置,上述配置调整完成后重新部署App Runner服务即可解决问题。

内容的提问来源于stack exchange,提问作者Carlos Jimenez Bermudez

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 12:36:03