通过 Visual Studio 2017 发布 Azure 函数项目后,所有函数应用都变为只读模式

Posted

技术标签:

【中文标题】通过 Visual Studio 2017 发布 Azure 函数项目后,所有函数应用都变为只读模式【英文标题】:All Function Apps turn to Read only mode after publishing Azure function project via Visual Studio 2017 【发布时间】:2019-02-25 08:16:37 【问题描述】:

我有一个通过 Portal 创建的功能应用程序,另一个是由 Visual Studio 创建的。后者导致两个应用程序都变为只读,并显示以下消息:

您的应用目前处于只读模式,因为您发布了一个 生成的function.json。对 function.json 所做的更改不会 函数运行时授予荣誉

这个功能正确吗?

VS:15.8.5

【问题讨论】:

【参考方案1】:

是的,这是设计使然。你提到的Function Apps 应该在同一个Function 应用程序中调用函数。

您在门户上创建一个函数应用程序和一个函数,然后在 VS 中您实际上还创建了一个函数应用程序而不是一个单独的函数。在您将此预编译的 Function 应用程序发布到具有一些现有功能的应用程序后,Azure 认为您要使用新发布的应用程序,因此它将应用程序设置为只读,因为我们无法修改门户上的预编译资产除非我们重新发布我们的代码。

此操作是设计使然,因为一个函数应用程序(内部包含函数)作为一个完整单元处理。因此,显然不建议将在线开发与预先编译的开发相结合。

两个选择供您参考。

    删除应用中的现有功能。从 VS 发布时检查 Remove additional files at destination

    创建另一个函数应用。

例如,混合在线和来自 VS 的预编译代码存在风险

    名称限制。如果我们发布同名的函数,在线创建的函数将被覆盖。

    我们无法检查Remove additional files at destination,即使之前发布的一些预编译的dll已经没用了。

如果只是为了测试或不担心潜在风险,只需在Function app设置中将Function app编辑模式更改为readwrite或在Application设置中添加FUNCTION_APP_EDIT_MODE readwrite即可。

【讨论】:

但这会影响通过 Portal 创建的其他功能应用程序? @Pingpong 你的意思是这会影响其他 Function 应用或同一个 Function 应用中的其他功能? 它会影响两者,正如我在开篇文章中提到的那样 @Pingpong 从来没有遇到过这个,你能提供这两个Function应用的截图,显示它们的编辑模式吗? 我不想再试一次了。但昨晚发生在我身上。

以上是关于通过 Visual Studio 2017 发布 Azure 函数项目后,所有函数应用都变为只读模式的主要内容,如果未能解决你的问题,请参考以下文章

如何通过VIsual Studio安装程序修改VS2017?

Visual Studio 2017 中 sqlproj 的 AfterPublish 目标

Visual Studio 2017 强制站点通过 https 加载,即使禁用了 ssl (Dotnet core 2.2)

Visual Studio 2017 和角度集成

Visual Studio 2017 Web 部署失败

如何在 Visual Studio 2017 中添加服务引用