如何将Azure Container App连接至无公网访问的Azure PostgreSQL灵活服务器
Azure Container App 连接无公网 PostgreSQL 灵活服务器配置步骤
核心逻辑:依托虚拟网络(VNet)实现私有资源访问
Azure 中替代 AWS 安全组的是 VNet+NSG 组合配置,Container App 必须通过 VNet 集成才能访问私有网络内的 PostgreSQL 资源。
1. 为 Container App 托管环境绑定 VNet
- 若现有托管环境未关联 VNet,需新建托管环境并指定目标 VNet 的专用子网(子网需预留至少
/24地址空间,且不能部署其他资源) - 跨资源组场景下,确保 Container App 所在资源组拥有目标 VNet 的访问权限
2. 配置 PostgreSQL 灵活服务器的私有访问规则
- 在 PostgreSQL 服务器的「网络」设置中启用「虚拟网络访问」,将 Container App 所在子网(或对等 VNet 的子网)添加至允许列表
- 若 PostgreSQL 使用私有 DNS 区域,需将 Container App 所在 VNet 关联到该 DNS 区域,保证能解析 PostgreSQL 的私有 FQDN
3. 验证网络连通性
- 跨 VNet 场景下配置 VNet 对等互联,开启「允许转发流量」和「允许网关传输」选项
- 检查网络安全组(NSG)规则:
- PostgreSQL 所在子网 NSG 允许入站 5432 端口,来源为 Container App 子网的 IP 范围
- Container App 所在子网 NSG 允许出站 5432 端口,目标为 PostgreSQL 子网的 IP 范围
4. 配置正确的连接字符串
- 使用 PostgreSQL 的私有 FQDN作为连接地址(可在服务器概览页获取),禁止使用公网 IP
- 在 Container App 环境变量中配置连接字符串,示例:
DATABASE_URL=postgresql://db-user:db-password@private-postgres-fqdn.postgres.database.azure.com:5432/target-db
内容的提问来源于stack exchange,提问作者Mark Dalby
相关产品推荐
相关产品推荐

