我有一个具有多个功能的Azure Functions项目,由ServiceBus和BlobStorage触发 .
他们几个月来一直在建造和部署到天蓝色的罚款 .
最近发生了一些事情,当您单击函数 Error: The binding type(s) 'blobTrigger' are not registered.
时,它们不再从我的构建计算机部署而在Azure中出现错误
尽管如此,它仍然可以从我的开发机器中部署 . 他们使用WEBSITE_RUN_FROM_ZIP来部署代码本身 .
我从我的开发机器和构建机器中取出了发布目录,看起来文件 extensions.json
正在本地生成,但不在构建机器上,还有空的本地化文件夹,但尚未考虑 .
Azure功能的目标是.Net Standard 2.0 . 检查.Net版本,.Net core是构建和开发机器上的相同版本 .
导致生成此文件的原因是什么?
2 回答
其中一个可能的原因可能是Azure Functions v2.0的更新
这可以解释突然的变化导致功能的错误,正如你所提到的那样,直到几个月前才开始工作 .
看看这个问题https://github.com/Azure/azure-functions-host/issues/3363#issuecomment-417926456
它与你的非常相似 .
v2.0中的一个变化是,在使用与存储相关的触发器时,您需要引用存储扩展
这是一个记录所有重大变化的链接 - Azure Functions Runtime 2.0.12050-alpha breaking changes notice
我已经能够按照this Github comment中的建议解决这个问题 .
基本上有时您必须包含额外的依赖项以使msbuild / visual studio运行后构建步骤并生成扩展文件 .
添加
Microsoft.Azure.Webjobs.Script.ExtensionsMetadataGenerator
作为函数项目的依赖项,它应该始终(到目前为止)正确构建您的发布目录 .按照惯例,将问题留给有人告诉我们为什么需要这样做 .