【问题标题】:How to disable Read Only mode in Azure Function App?如何在 Azure Function App 中禁用只读模式?
【发布时间】:2019-05-06 22:22:30
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

  • 我建议不要混淆...您要么依赖门户网站,要么依赖本地开发工具。 @MarkXa 关于代理的回答是正确的。如果您确实更喜欢在门户上进行设置,最好删除该功能并重新创建它。

标签: azure-functions azure-functions-core-tools


【解决方案1】:

第 1 部分 - 禁用只读模式

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

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

第 2 部分 - 创建代理

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

【讨论】:

  • 谢谢。我将把它标记为答案但是我有问题:我正在使用最新的 mac 工具(v2.3.148)。默认情况下(即使不使用 --nozip 选项)它会部署应用程序并将其转换为只读模式。是的,删除这些设置会禁用只读模式(+ 擦除应用程序)。有没有办法从一开始就改变默认行为?
  • 另外,根据以下公告,Core Tools 显示无需手动添加 proxies.json 即可创建代理,但我在我的版本中没有看到这样的选项。您可以使用 Core Tools 创建代理吗?如果是这样,您使用的是哪个版本和操作系统以及如何使用?这是公告 [blogs.msdn.microsoft.com/appserviceteam/2017/11/15/…
  • 我不知道有什么方法可以防止发布为只读 - 这就是它的设计方式。关于“func proxy”命令,在撰写本文时,它们在 v2 核心工具中不可用,只有 v1,尽管我相信它在路线图上。
  • 谢谢。我想知道您对某事的看法:正如您所说,Core Tools 默认部署为 Run For 包,并且无法更改。那么使用 --nozip 选项做同样的事情有什么意义呢?对我来说,拥有 --nozip 意味着除了 Run For Package 之外还有其他部署方式。但是没有别的办法。我觉得这很混乱。你有什么看法?
  • 是的,--nozip 的命名并不理想 :) 它实际上的意思是“不要从包中运行”。如果提供,它仍会上传 ZIP 文件,但会将其解压缩到文件系统,这意味着文件可在门户中编辑。否则,函数应用会直接从 ZIP 运行,因此您在门户中看到的文件实际上是指向 ZIP 中文件的链接,您无法对其进行编辑。
【解决方案2】:

现在似乎可以从门户或通过编辑应用程序设置来更改此设置。 FUNCTION_APP_EDIT_MODE 允许值 readwritereadonly,根据 the manual

一些discussion of this 在以下问题中也是如此。 似乎建议一般不要这样做,因为应该通过发布管道进行更改,但现在是可能的。

【讨论】:

  • 这不起作用。我正在使用 ZIP 进行部署。 Azure Function App 有 OLD FILES 使应用程序处于损坏状态。
  • 使用 devops 部署时确实有效
【解决方案3】:

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

see here

【讨论】:

    猜你喜欢
    • 2012-10-14
    • 2020-05-07
    • 1970-01-01
    • 2020-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-09
    • 1970-01-01
    相关资源
    最近更新 更多