【问题标题】:Azure function can not access Azure BlobAzure 函数无法访问 Azure Blob
【发布时间】:2021-09-17 12:47:56
【问题描述】:

我正在尝试从 Azure 功能访问存储帐户。但是在尝试检索文件时出现 403 错误。我没有看到为什么我收到此错误的任何问题。

让我解释一下设置。

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

知道可能是什么原因吗?

【问题讨论】:

  • 您可以使用 azure 函数系统身份来访问 blob 存储,请查看此简短教程docs.microsoft.com/en-us/azure/storage/common/…
  • 您使用的是访问密钥还是 azure ad auth ?
  • 您是否仍然面临这个问题?您能否提供与错误/问题相关的更多详细信息?

标签: azure azure-functions azure-storage azure-blob-storage


【解决方案1】:

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

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

  1. 您的函数应用托管在 internally load balanced App Service Environment 中,并配置为阻止入站 互联网流量。
  2. 您的函数应用具有inbound IP restrictions,它们是 配置为阻止互联网访问。参考app behind firewall

否则

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

其他解决方法

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

【讨论】:

    猜你喜欢
    • 2020-12-01
    • 2014-10-16
    • 2021-08-05
    • 2020-12-12
    • 2014-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多