gpt4 book ai didi

sql-server - 集成到 VNET 后无法连接到 Azure Function App

转载 作者:行者123 更新时间:2023-12-05 02:05:09 25 4
gpt4 key购买 nike

问题概要

Azure Function App 集成到 VNET 且 WEBSITE_VNET_ROUTE_ALL 设置为 1 后将无法访问。

这是必需的,以便 Function App 可以安全地连接到 SQL,而无需公开 SQL。

错误:

无法列出功能应用程序键。

enter image description here

同一网络中虚拟机内的 HTTP 请求 (CURL) 失败:504 网关超时

enter image description here

架构图

enter image description here

重现步骤

  1. 创建资源组
  2. 创建具有 10.20.11.0/26 地址空间的 VNET
  3. 为 Function App 创建一个子网以集成到地址中范围为10.20.11.0/27
  4. 创建 Linux Function App 并将其集成到您创建的 VNET 中在第 2 步中。
  5. 看到应用键仍然正常加载。
  6. 为数据库创建一个子网,地址范围为10.20.11.32/27
  7. 创建 SQL Server 和 SQL 数据库。
  8. 在数据库上创建一个带有 DNS 区域的专用链接并限制公共(public)访问。
  9. 将 DNS 区域链接到第 2 步中创建的 VNET。
  10. 函数应用将 SQL 专用链接解析为公共(public) IP 地址。
  11. 在 Function App 配置中,添加应用程序设置WEBSITE_VNET_ROUTE_ALL 并将其设置为 1。
  12. 看到 Function 应用现在将 SQL 专用链接解析为专用 IP地址
  13. 发现功能应用键未加载。
  14. 尝试通过来自网络或公共(public)链接。
  15. 看到 Function 应用网关超时。

通过 SSH 连接到 Function App 并使用 nslookup,我们确定与专用链接的连接按预期解析了 SQL 数据库的本地 IP 地址。

将 WEBSITE_VNET_ROUTE_ALL 标志设置为 0,nslookup 解析 SQL 数据库的公共(public) IP。

由于 SQL 数据库受到限制并且只能在网络上使用,因此将 WEBSITE_VNET_ROUTE_ALL 设置设置为 1 至关重要。

WEBSITE_VNET_ROUTE_ALL = 1

enter image description here

WEBSITE_VNET_ROUTE_ALL = 0

enter image description here

引用文献

https://learn.microsoft.com/en-us/azure/app-service/web-sites-integrate-with-vnet

最佳答案

此问题已通过向 Function App 子网添加“Microsoft.Storage”服务端点得到解决。

当所有流量发送到 vnet 时,它需要一个到存储的服务端点,以便它可以读取 Function App 配置和功能。

  1. 导航到您的虚拟网络资源
  2. 在侧边菜单的“设置”下,选择“服务端点”
  3. 点击“添加”
  4. 从服务下拉列表中选择“Microsoft.Storage”
  5. 根据需要添加政策(我未在此处选择任何政策)
  6. 关联 Function App 子网
  7. 添加。

关于sql-server - 集成到 VNET 后无法连接到 Azure Function App,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63791349/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com