Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure functions 从公共Azure函数到Azure PostgreSQL的安全连接_Azure Functions_Azure Virtual Network_Azure Postgresql - Fatal编程技术网

Azure functions 从公共Azure函数到Azure PostgreSQL的安全连接

Azure functions 从公共Azure函数到Azure PostgreSQL的安全连接,azure-functions,azure-virtual-network,azure-postgresql,Azure Functions,Azure Virtual Network,Azure Postgresql,上下文 Azure函数可从Internet访问(想想公共API) 功能应用程序托管在弹性特优计划中 Azure托管PostgreSQL实例(GPplan) 目标 使PostgreSQL实例仅可供函数应用程序访问,同时保持函数应用程序可从Internet访问 我尝试过的 创建一个VNet和一个支持服务端点的子网 将VNet规则添加到PostgreSQL实例,以确保仅从该子网进行访问 将功能应用程序与VNet集成 这应该足以限制对数据库的访问,但它有一个功能应用程序无法从互联网上访问的副作用。我

上下文

  • Azure函数可从Internet访问(想想公共API)
  • 功能应用程序托管在
    弹性特优计划中
  • Azure托管PostgreSQL实例(
    GP
    plan)
目标

使PostgreSQL实例仅可供函数应用程序访问,同时保持函数应用程序可从Internet访问

我尝试过的

  • 创建一个VNet和一个支持服务端点的子网
  • 将VNet规则添加到PostgreSQL实例,以确保仅从该子网进行访问
  • 将功能应用程序与VNet集成
  • 这应该足以限制对数据库的访问,但它有一个功能应用程序无法从互联网上访问的副作用。我认为AppInsights也无法访问功能应用程序(无法打开与应用程序的连接。这可能是由于您在应用程序上设置了任何网络安全组或IP限制规则。
    在监视器中)

    在AWS世界中,我将Lambda和数据库实例放在私有子网中,并为Lambda的Internet访问添加一个NAT网关。经过广泛的研究,我不知道如何用Azure实现这一点


    如果有其他方法,请告诉我

    默认情况下,对于Azure功能,应用程序不能限制公共访问。对于AppInsights无法访问Function App的错误消息,您可以在与集成子网关联的NSG入站规则中添加
    Azure monitor
    服务标签。

    由于Microsoft支持部门的帮助,该问题已得到解决。看来问题不在于功能应用程序和互联网之间的链接。正如Nancy在她的文章中正确地提到的,将功能应用程序集成到VNet中不会限制公众对FA的访问

    在我的例子中,问题在于功能应用程序与其存储帐户之间缺少链接,因此FA无法从存储中加载功能和配置。在子网上启用Microsoft.Storage服务端点修复了该问题。奇怪的是,警察没有提到这一点


    使用Azure Portal,可以通过VNet页面添加服务端点
    ->
    子网
    ->
    您的子网
    ->
    服务端点
    ->
    启用
    Microsoft。存储

    您能告诉我如何集成VNet吗?此外,您能告诉我事件区域是否相同吗?您好@JimXu我使用了功能应用程序页面上的
    网络
    选项卡上的
    VNet集成
    选项。我已经为功能应用创建了一个VNet和一个子网,因此我将其与功能应用相关联。所有Azure组件(FA、数据库等)都位于同一区域。您是否参考配置Azure功能的VNET?@JimXu正确。