Azure 函数无法访问 Azure Blob

Azure function can not access Azure Blob

我正在尝试从 Azure 函数访问存储帐户。但是在尝试检索文件时出现 403 错误。我没有发现我收到此错误的任何问题。

让我解释一下设置。

1- Azure 函数应用位于美国东部 2- 中南部的 Azure blob 3- Azure blob 启用了防火墙(我启用了 azure 服务可以访问) 4-我还将功能应用程序的 IP 列入白名单。 (属性-虚拟IP) 5- Azure 函数可以创建 blob 客户端并成功检索所有属性。 6- 如果我启用 Azure 存储防火墙 public 访问,该函数可以下载流。

知道可能是什么原因吗?

看看你是否给它一些时间来工作。存储帐户最多可能需要 12-13 小时才能将虚拟网络列入白名单。

Else Function 应用程序可能由于以下原因无法联系服务。

  1. 您的函数应用托管在 内部负载平衡的应用中 服务环境 并且配置为阻止入站 互联网流量。
  2. 您的函数应用有 inbound IP restrictions 配置为阻止互联网访问。参考 app behind firewall

否则

  • 代码可能在本地运行,因为您可能已将本地 IP 添加到 白名单,而功能省略了此步骤。
  • 检查是否有任何出站IP遗漏添加到白名单Ips。在 门户,转到资源浏览器 > 在平台功能下。搜索 outboundIpAddresses 并将那些(通常是四个)IP 添加到存储中 帐户白名单。
  • 这个问题甚至可能是因为设置了防火墙 贮存。禁用它,它应该可以工作。

其他解决方法

  1. 要在存储帐户上启用防火墙,可能必须使用 vnet 存储帐户和应用程序集成 Service.See 虚拟网络 整合。但它可能通过选择消费来工作 不同地区的计划和相同地区的应用程序服务计划。
  2. 同时检查 DNS 配置,因为现有的 Azure 服务是 配置为使用现有 DNS 连接到 public 端点。 您必须覆盖 DNS 配置才能连接到私有 端点。检查 private-endpoint.
  3. 您可以通过以下方式将网络安全添加到 Azure 存储帐户 使用防火墙和防火墙规则限制访问。 grant-access-to-trusted-azure-service. 检查您的情况是否存在上述任何问题。