Azure Functions - 存储连接

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

我有一个 Azure 函数应用程序,它在托管标识下运行,通过集成子网连接到同一 vnet 中存储帐户的专用终结点。如果我允许所有网络流量访问存储,该函数可以正常工作,但是当我禁用公共访问时,该函数将失败并出现以下错误:

当我从函数应用程序执行 nslookup 时,它会解析为内部 IP 地址,但当函数应用程序访问存储时,它会使用不在我的 VNET 范围内的 IP 地址。

我已经解决这个问题一个多星期了,我真的不知道答案是什么?

任何见解都将受到欢迎

azure function private endpoint
1个回答
0
投票

感谢您的见解@alex

  1. Function app=>Application Settings
    中添加以下设置,参考MSDOC
WEBSITE_CONTENTOVERVNET=1
WEBSITE_VNET_ROUTE_ALL=1

enter image description here

  1. 检查 Azure Functions 应用程序是否与包含存储帐户的虚拟网络 (VNet) 正确集成。

  2. 确保您已为存储帐户创建并配置专用终结点,并且已正确链接到正确的子网和 VNet。

  3. 函数应用程序的托管标识应分配有

    Storage Blob Data Contributor
    以访问存储帐户。

  • 在 Azure 函数应用程序中启用托管身份。

enter image description here

  • Storage blob data contributor
    角色分配给函数应用的托管标识。

enter image description here

  1. 确保 NSG 规则(如果启用)允许 Azure Functions 子网和存储帐户子网之间的流量。

  2. 为 Azure Functions 应用和存储帐户启用日志记录,并检查日志以识别函数应用尝试访问存储帐户时发生的任何错误。

我在我的环境中通过禁用函数应用程序和存储帐户中的公共访问并与虚拟网络专用端点集成进行了相同的测试。

enter image description here

参考资料:

  1. 使用专用终结点将 Azure Functions 与虚拟网络集成
© www.soinside.com 2019 - 2024. All rights reserved.