功能和私有存储账户联网

问题描述 投票:0回答:1

我已将我的存储帐户设为私有,并且仅允许从选定的虚拟网络或 IP 地址进行访问。

从那时起,我无法运行我的函数,并且它失败并出现错误

500 internal server error
,这并不是很重要。 尝试查看诊断控制台以获取更多信息错误,我发现了这一点:
[Error] System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
不太有帮助。

我确信这与 netowkring 问题有关。 所以我想在我的函数应用程序上配置 Vnet。我尝试过的事情:

  1. 我试过了
    Outbound traffic configuration

enter image description here

  1. 然后我尝试选择“我的私有存储端点”帐户所在的虚拟网络和子网,但我遇到了这个问题。

enter image description here

  1. 为了解决上述问题,我尝试进行委托 enter image description here

但是我收到错误消息:

Failed to save subnet ERROR: Delegations of subnet "mysubnet name" cannot be chnaged from [] to  [Microsoft.Web/serverFarms] because it is being used by the resource  pe-kv-nll-dev-we-01.nic.888888889-80c0.......

然后我还尝试添加您在上面看到的服务端点

Microsfot.Web
,但也没有成功。

我有什么想法可以这样做吗?我是函数应用程序的新手,也许我应该将存储帐户的 IP 地址添加到我的函数应用程序的出站地址下?如果是的话我该怎么做?

azure azure-functions azure-virtual-network subnet
1个回答
0
投票

要解决 Azure Function App 中的网络问题,请创建至少包含两个子网的虚拟网络,其中一个用于入站配置,另一个用于出站配置:

enter image description here

打开您的存储帐户 > 网络 >

enter image description here

  1. 选择选项
    Enabled from selected virtual networks and IP addresses
    subnet 1
    ,添加您的设备互联网IP,功能应用程序入站IP,选中例外部分。

enter image description here
enter image description here

  1. 在功能应用程序中,选择网络 > 选择出站 VNet 集成到子网 2,选中配置中的
    Outbound internet traffic
    Content Storage
    字段,如上面的屏幕截图所示。
  2. 完成后,您将在subnet2中注册委托,如下图所示:

enter image description here

  1. 在功能 App > 网络 > 入站流量配置 > 配置
    Public Network Access
    字段,如下所示:

enter image description here

  1. 配置 Subnet1 的服务端点:

enter image description here

简单来说,

  1. 创建一个子网用于出站连接,另一个子网用于虚拟网络中功能应用程序、存储帐户等的入站流量。
  2. Subnet1 应该具有服务端点,无论服务正在使用它,而 Subnet2 应该充当服务器场的专用出站。
  3. 在函数应用程序的环境变量中将
    WEBSITE_VNET_ROUTE_ALL
    应用程序设置配置为
    1

结果
enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.