visual-studio - Azure 部署防火墙问题

标签 visual-studio azure azure-storage azure-functions

我想通过 VS 2017 发布我的 Azure 函数。

它工作正常,但在链接的存储帐户上激活防火墙后,我无法再部署我的项目。 我已经检查了固件设置,看起来没问题(没有代理等)。

我遇到了一些 ERROR_INSUFFICIENT_ACCESS_TO_SITE_FOLDER 错误。

主题中给出的建议对我不起作用。 Not able to publish website on Windows Azure using publish through VS2010 .

还有其他建议吗?

最佳答案

解决方案:

创建一个与函数应用不在同一区域的存储帐户。例如,如果您的函数位于美国中部,则存储帐户应选择其他帐户,例如美国东部。然后使用新创建的存储帐户连接字符串修改以下三个参数(在应用程序设置中)。

  1. AzureWebJobs仪表板
  2. AzureWebJobsStorage
  3. WEBSITE_CONTENTAZUREFILECONNECTIONSTRING(仅用于消费计划)

使用 Function app outbound IP addresses 配置其防火墙.

  1. 在 Function 应用的平台功能面板上,单击资源浏览器。

  2. 查找 outboundIpAddresses 并将其全部添加到防火墙 IP 列表中。

  3. 如果您想使用 Azure 门户访问存储帐户,请不要忘记添加您的本地 IP。 (从 VS 部署不需要)。

说明:

只能为消耗计划上托管的函数重现 INSUFFICIENT_ACCESS。

关于这个问题,App service 和 Consumer plan 最大的区别在于它们如何托管函数文件。

对于应用服务计划,我们在门户上发布或创建的功能文件存储在某些Azure服务器上。将防火墙设置添加到 AzureWebJobsDashboard(在表中存储函数日志)和 AzureWebJobsStorage(在容器中存储函数主机锁)使用的存储帐户,对函数部署没有影响。

对于消耗计划,功能文件存储在WEBSITE_CONTENTAZUREFILECONNECTIONSTRING指定的存储帐户中。当我们从VS发布或在门户上创建函数时,函数文件将从函数站点部署到存储帐户。我们遇到了错误,因为我们没有将函数应用 IP 添加到存储防火墙白名单。

至于为什么我们必须在与 Function 应用程序不同的区域中创建存储,根据我的测试,当它们位于同一区域时,Function 似乎不会利用出站 IP。在 GitHub 上看到有人得到了 the same result .

关于visual-studio - Azure 部署防火墙问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51668701/

相关文章:

visual-studio - 保存 map 时出错。存储过程返回非零结果

c# - 如何使用 Azure Blob 存储下载 Block Blob (Base64) 文件并将其转换为 PNG?

Azure 逻辑应用程序可从 Azure Blob 容器动态获取 Blob 内容,而无需将文件名保存在路径中

Mongodb辅助角色抛出System.IO.FileNotFoundException

Azure ApplicationInsights 指标语法? - 内部服务器故障

visual-studio - 如果在后端代码中设置断点,Visual Studio 2022 在加载 View 时会卡住(c#)

c++ - 混合 C 和 C++ 代码时出现链接错误

c# - 如何在 2d 图形中标记 Excel X 和 Y 轴

javascript - 如何使用javascript从word文档页面中删除表格设计? Word js 插件

azure - Azure 上的导出数据库保持锁定