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

2024-04-10

问题概要

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

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

Errors:

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

来自同一网络中 VM 内的 HTTP 请求 (CURL) 失败:504 网关超时

架构图

重现步骤

  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 区域的专用链接并限制 公共访问。
  9. 将 DNS 区域链接到步骤 2 中创建的 VNET。
  10. 函数应用程序将 SQL 专用链接解析为公共 IP 地址。
  11. 在 Function App 配置中,添加应用程序设置 WEBSITE_VNET_ROUTE_ALL 并将其设置为 1。
  12. 看到 Function 应用程序现在将 SQL 专用链接解析为专用 IP 地址
  13. 请注意,功能应用程序按键未加载。
  14. 尝试通过来自的连接连接到 Azure Functions 网络或公共链接。
  15. 查看 Function 应用网关超时。

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

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

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

WEBSITE_VNET_ROUTE_ALL = 1

网站_VNET_ROUTE_ALL = 0

参考

https://learn.microsoft.com/en-us/azure/app-service/web-sites-integrate-with-vnet 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. Add.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

集成到 VNET 后无法连接到 Azure Function App 的相关文章

  • 对带有空白 NVARCHAR 或 NULL 检查的 VARCHAR 索引进行 Count(*) 会导致返回的行数加倍

    我有一张桌子 上面有VARCHAR列及其上的索引 每当一个SELECT COUNT 是在这张表上完成的 该表检查了COLUMN N OR COLUMN IS NULL它返回双倍的行数 SELECT 与相同的where子句将返回正确的记录数
  • 尝试了解天蓝色云服务中的负载平衡

    我正在维护一个天蓝色的云服务 它有 1 个 Web 角色和几个辅助角色 该网络角色有多个实例 当我从资源中打开云服务时 我可以看到服务端点和公共IP地址 我想了解这个蔚蓝云服务中的流量负载是如何平衡的 我搜索了负载均衡器 但在订阅中找不到它
  • 关于多客户端和可定制 Web 应用程序的架构所需的建议[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何查询集成服务目录

    问题 识别连接到 SQL Server 上特定数据库表的所有 SSIS 包 详细信息 服务器上部署了近 100 个包 大多数包的大小都很大 因此很难以高精度手动检查它们 有没有一种快速且自动化的方法来做到这一点 使用 SQL Server
  • 从 SQL Server 读取十进制值时出现溢出异常

    我想知道这是一个错误还是我做错了什么 我正在加载值SqlDataReader来自 SQL Server 2008 数据库 但在某些情况下 它无法将 SQL 值转换为 net 值 NET 4 0 我已将其追溯到一个测试用例 它演示了实际问题
  • 从每个子集中选择最大值

    我在这里敲头 我觉得自己很愚蠢 因为我确信我以前做过类似的事情 但我一辈子都不记得是怎么做的 我想那一天 gt 假设我有以下数据 gt 和一个返回此数据的查询 gt 但我想要这个 ID FirstID ID FirstID ID First
  • 如何在 SqlDataReader.Read() 期间从死锁异常中恢复

    我的 NET 应用程序的事件日志显示 它在从 Sql Server 读取数据时偶尔会出现死锁 这种情况通常非常罕见 因为我们已经优化了查询以避免死锁 但有时仍然会发生 过去 我们在调用ExecuteReader函数在我们的SqlComman
  • 如何在本地启动Azure函数并附加调试器以通过launch.json和tasks.json动态处理?

    在 Mac 上使用 NET Core 和 Visual Studio Code 我尝试在本地托管 Azure Function 并将调试器附加到它 手动地 我可以通过启动该函数来使其工作func host start 然后按 IDE 中的调
  • SQL Server Management Studio v18 的命令行参数登录

    使用 SQL Server 身份验证时是否仍然可以从命令行打开 SQL Server Management Studio v18 根据微软的发行说明 由于安全风险 他们删除了 P 命令行参数 因此 可以从命令行使用 SQL Server 身
  • SQL Server 中的嵌套事务

    sql server 允许嵌套事务吗 如果是的话那么交易的优先级是什么 来自 SQL Server 上的 MSDN 文档 嵌套交易 http msdn microsoft com en us library ms189336 SQL 90
  • Azure 表存储 - CreateIfNotExistsAsync 上的 501 NotImplemented

    我正在使用我知道可以工作的存储帐户和帐户密钥 信用 我有一个使用完全相同的连接字符串的 blob 容器 可以正常工作 我正在有效地这样做 CloudStorageAccount Parse connectionString CreateCl
  • 当我使用可变参数而不是常量参数时,为什么我的内联表 UDF 慢得多?

    我有一个表值内联 UDF 我想过滤该 UDF 的结果以获得一个特定值 当我使用常量参数指定过滤器时 一切都很好 并且性能几乎是瞬时的 当我使用可变参数指定过滤器时 它会花费明显更大的时间块 大约是逻辑读取的 500 倍和持续时间的 20 倍
  • 我可以根据多列删除数据库重复项吗?

    I 不久前问过这个问题 https stackoverflow com questions 4952250 how to delete duplicates from a database table based on a certain
  • Spring Batch 死锁 - 无法增加身份;嵌套异常是 com.microsoft.sqlserver.jdbc.SQLServerException

    我们正在将 Spring Batch 应用程序从 Oracle DB 迁移到 Azure SQL Server 我在尝试执行时收到以下错误两个不同的工作同时更新不同的表 但使用相同的公共 BATCH 表 引起原因 org springfra
  • 如何使用 SQL 通过表示多级订单的 varchar 字段正确排序?

    我不太喜欢数据库 我发现在查询上出现以下问题SQL服务器数据库旧的遗留应用程序的 我声明不幸的是我无法更改数据库结构 字段类型 这非常难看 我有以下情况 SELECT Sottocategoria IdSottocategoria IdCa
  • 直接向订阅发送消息

    是否可以将消息直接发送到订阅队列 设想 消息失败 被丢弃到死信中 该消息已使用 defer 手动拾取 克隆 并且需要发送到它首先被发送到死信的队列 但不是主题 我可以直接向订阅者发送消息吗 我考虑过为每个订阅者创建一个单独的重试队列 处理服
  • TSQL - 生成文字浮点值

    我理解比较浮点数时遇到的许多问题 并对它们在这种情况下的使用感到遗憾 但我不是表格作者 只有一个小障碍需要克服 有人决定使用浮点数 就像您期望使用 GUID 一样 我需要检索具有特定浮点值的所有记录 sp help MyTable Colu
  • 有没有办法设置 SQL Server 作业计划每 30 秒运行一次?

    当我尝试创建计划时 我可以选择的最短时间是 1 分钟 有没有办法将其减少到秒 这篇文章在这里SQL Server 作业调度 http www sqlservercentral com articles Administration sqls
  • 将 SQL 存储过程 ResultSet 表 JSON 转换为 XML

    这看起来很明显 但不知何故它对我不起作用 我正在尝试在 Microsoft Azure 上的逻辑应用程序中构建解决方案 但我无法将 JSON 对象转换为 XML 我的要求是执行存储过程并以 XML 格式保存响应 默认情况下 SQL 执行存储
  • SQL Server 2008 错误 233

    我正在使用以下 sql 脚本在 SQL Server 2008 中创建新登录名 CREATE LOGIN xyz WITH PASSWORD xyz DEFAULT DATABASE master DEFAULT LANGUAGE us e

随机推荐