【发布时间】:2020-12-14 00:40:04
【问题描述】:
我们有一个连接到本地 Web 服务的服务结构解决方案。调用 Web 服务对于 Service Fabric 解决方案来说不是问题。一切正常。
我们必须从 SF 解决方案中提取功能并将其转换为 Azure Function。
问题是 Azure Function 无法连接到本地 Web 服务。这是我们收到的错误:
“调用时出错.... api:连接尝试失败,因为 关联方在一段时间后没有正确响应,或 建立连接失败,因为连接的主机未能 回应。”
当前设置:
-
一个包含以下子网的天蓝色 VNET“vnetA”:
- subA 10.0.1.128/25,它是具有站点到站点 (IPsec) 连接的虚拟网络网关。我认为是本地网络服务。
- subB 10.0.1.0/25,它是 Service Fabric 解决方案使用的子网。
- subC 10.0.2.0/25,这是包含 Azure 函数的 Function App 使用的子网。
-
Function App/Azure Function 连接到 vnetA 和子网 subC (10.0.2.0/25) 计划类型:应用服务计划 - 标准 S1,它没有定义代理。
-
连接到 SF 解决方案和 Azure Function 的 Api 管理服务。 (如果我们绕过这个并使用函数 url 错误是一样的。)
-
子网 subA 有以下设置:
- NAT 网关:无
- 路由表:无
- 服务:未选择
- 将子网委托给服务:无
- 网络安全组:无
-
子网 subC 有以下设置:
- NAT 网关:无
- 路由表:无
- 服务:未选择
- 将子网委托给服务:Microsoft.Web/ServerFarms
- 网络安全组:nsgA
设置 azure 网络的人不再为我们工作。我需要做什么才能使其正常工作?我是一名开发人员,以前从未在 (Azure) 网络上工作过,所以这超出了我的舒适区,我似乎无法在 Internet 上找到/理解任何内容。
更新: 如果不使用基本价格为每月 1000 美元以上的 ASE(Azure 应用服务环境),Azure 功能似乎无法访问本地资源。所以我将不得不寻找某种解决方法。
【问题讨论】:
-
你能检查 sub A 和 C 之间的网络规则,看看是否允许流量?您是否正确地在函数中进行了 vnet 集成和代理设置?
-
@Aravind 我用您要求的信息更新了我的问题。没有为 azure 函数定义代理。
-
ok 代理不是强制性的,但它用于需要将请求转发到 vnet 内的资源的情况。
标签: azure azure-functions azure-virtual-network azure-function-app