为什么我的 Azure Functions 在部署时设置为“已禁用”?

Why is my Azure Function set to `Disabled` upon deployment?

在 Azure DevOps 中,我有一个构建管道,它创建一个包含两个 Azure Functions 的项目的存档。然后我有一个发布管道,它将这个 zip 存档部署到 Function App。

发布管道是使用用于部署 Function App 的 DevOps 模板构建的。

发布运行没有任何错误,确实部署了丢弃的工件。但是,如果我随后查看门户中的 Function App,我会看到消息

Your app is currently in read only mode because you have source control integration enabled.

我并不太关心这个,因为我不打算修改门户中的代码 - 我的假设是只读状态意味着我无法修改门户中的功能,对吧?

然后我也注意到了这个...

为什么其中一个功能 Disabled,我该如何部署才能使其 en 可用?

看来警告与功能状态无关。您可以使用函数 Overview 页面上的 EnableDisable 按钮。这些按钮通过更改 AzureWebJobs.<FUNCTION_NAME>.Disabled 应用程序设置的值来工作。此 function-specific 设置是在第一次禁用时创建的。

在此处查看文档:

https://docs.microsoft.com/en-us/azure/azure-functions/disable-function#use-the-portal

关于警告,如果函数'deployed'到Azure,部署的是编译后的文件。所以这就是为什么它是只读的。

对代码的修改应该在编译成相应的'cannot be edited'文件之前完成,这一点需要特别注意。

但是对于函数的声明部分和配置部分的修改,这是可以的。

详细信息,您可以参考以下案例:

请启用您的功能并重试。部署不应该禁用您的功能,所以它可能以其他方式被禁用。我试过了,效果是这样的。