如何在 Azure Function App 中禁用只读模式?

How to disable Read Only mode in Azure Function App?

我从 Azure 门户创建了一个新的 Function App (v2)。然后我在 Azure Functions Core Tools v2.3 的帮助下在我的本地计算机上启动一个新应用程序,并将它发布到我在门户上的新应用程序:

func init
func new
func azure functionapp publish my-app-name

这会将我的应用置于只读模式。但是我需要能够从门户更改应用程序,因为我需要创建代理(核心工具无法创建代理,如果我错了请纠正我)。如何禁用只读模式?

以下是我的local.settings.json内容:

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "node",
    "AzureWebJobsStorage": "{AzureWebJobsStorage}"
  }
}

仅供参考,我正在 macOS High Sierra 上开发。

第 1 部分 - 禁用只读模式

如果您使用的是最新工具,您可能会发现您的函数应用程序处于 运行-from-package 模式,这意味着它直接从上传的 ZIP 中读取文件,因此没有编辑它的方法。您可以通过删除门户中的 WEBSITE_RUN_FROM_ZIPWEBSITE_RUN_FROM_PACKAGE 应用程序设置来关闭它。请注意,这将在您下次发布之前清除您的函数应用程序。

如果您的工具有点旧,或者如果您使用最新的工具进行部署但使用 func azure functionapp publish my-app-name --nozip,那么您可以使用门户平台功能中的应用服务编辑器来编辑 function.json 文件并删除 "generatedBy" 设置,这将阻止它们成为只读的。

第 2 部分 - 创建代理

您可以通过在应用程序根目录(与 host.json 一起)填充 proxies.json 文件来将代理添加到您的本地项目。更多信息位于 https://docs.microsoft.com/en-us/azure/azure-functions/functions-proxies, and a few examples are at https://docs.microsoft.com/en-us/sandbox/functions-recipes/proxies。您还可以在门户中创建代理(当不是只读时!),然后使用高级编辑器获取要添加到项目中的源。

看来现在可以从门户或通过编辑应用程序设置来更改此设置。 根据 the manual

FUNCTION_APP_EDIT_MODE 允许值 readwritereadonly

下期还有一些discussion of this。 似乎建议一般不要这样做,因为应该通过发布管道进行更改,但现在可以了。

在 Azure 版本中将部署设置从自动检测更改为 Zip 部署。

see here