通过Visual stuido 2017发布Azure功能项目后,所有Functiona Apps都将变为只读模式

时间:2018-09-21 00:18:16

标签: azure visual-studio-2017 azure-functions

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

  

您的应用当前处于只读模式,因为您已经发布了   生成的function.json。对function.json所做的更改将不会   被功能运行时授予荣誉

此功能正确吗?

VS:15.8.5

1 个答案:

答案 0 :(得分:1)

是的,这是设计使然。您提到的Function Apps应该在同一功能应用程序中称为功能。

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

此操作是设计使然,因为一个功能应用程序(内部具有功能)被视为一个完整的单元。因此,显然不建议将在线开发与预先完成的开发混在一起。

两种选择供您参考。

  1. 删除应用程序中的现有功能。从VS发布时选中Remove additional files at destination

    enter image description here

  2. 创建另一个Function应用。

例如,可能存在混合使用VS的在线代码和预编译的代码的风险

  1. 名称限制。如果发布具有相同名称的函数,则在线创建的函数将被覆盖。

  2. 我们无法检查Remove additional files at destination,即使以前发布的一些预编译的dll无效。

如果仅用于测试或不担心潜在风险,只需在功能应用程序设置中将功能应用程序编辑模式更改为可读写,或在应用程序设置中添加FUNCTION_APP_EDIT_MODE读写即可。