Azure SQL 槽 VNet 的 Azure 函数连接字符串
Posted
技术标签:
【中文标题】Azure SQL 槽 VNet 的 Azure 函数连接字符串【英文标题】:Azure function connectionstring for Azure SQL trough VNet 【发布时间】:2018-05-29 01:48:56 【问题描述】:我想知道如何从我的 Azure Function App 以安全的方式访问我的 Azure SQL 数据库,而不是通过公共 Internet。
我有一个使用 VNET/网关集成的功能应用程序(功能应用程序计划 - 标准层)。我已经为 Microsoft.SQL 指定了一个服务 EndPoint ...我在 Azure SQL 数据库上启用了虚拟网络访问 ....
当 Azure 函数尝试连接到 sql db 时,它使用“正常”连接字符串,其中包含 sql 数据库服务器名称作为 dns 标签,然后我收到错误,我的 ip 地址不允许访问。 ip 地址是 Azure 函数应用的出站 IP 地址。
我认为此错误意味着函数应用正在尝试通过公共 Internet 连接到 Azure SQL 数据库。这个想法是,这个请求应该通过 VNet 到达 Azure SQL 数据库。
我的猜测是连接字符串应该不同。有什么建议吗?
【问题讨论】:
您可以使用 VNET 集成简单地创建从您的函数到虚拟网络的点到站点专用 *** 连接:codehollow.com/2016/12/… 安德烈斯,感谢您的出色指点。这有帮助! 【参考方案1】:当 Azure 函数尝试连接到 sql db 时,它使用 'normal' 连接字符串,包括 sql 数据库服务器名称 作为 dns 标签,然后我收到我的 ip 地址不允许的错误 访问。
当我们尝试连接sql数据库时,网络流量会通过互联网。 因为 Azure 服务资源可以保护到您的虚拟网络。将服务资源保护到虚拟网络可通过完全消除对资源的公共 Internet 访问和仅允许来自您的虚拟网络的流量来提高安全性。
这样,Internet 网络流量将无法访问此服务(SQL 数据库):
如果你想连接Azure函数应用和Azure SQL数据库,我们应该在Azure Vnet中部署Azure函数应用,我们应该使用应用服务环境来部署它。
更多关于应用服务环境的信息,请参考这个article。
【讨论】:
谢谢 Jason,是的,这正是我正在处理的场景。我将应用服务计划标准与 Azure 功能应用程序的网关一起使用。在这种情况下,流量会通过网关吗?然后的问题是.. 要使用的适当连接字符串是什么,或者.. 如何从函数应用程序连接到 Sql 数据库。 感谢您的回复更新。不幸的是,ASE 的价格一开始就很高。对于我们的用例,这不是一个选项。 对不起@jason-ye-msft,所以这意味着在这种情况下允许访问 Azure SQL 的唯一方法是在 ASE 中部署函数应用程序?谢谢!以上是关于Azure SQL 槽 VNet 的 Azure 函数连接字符串的主要内容,如果未能解决你的问题,请参考以下文章