因此,如果我在Azure中创建了一个新函数并将其设置为V2,则Azure Functions v2退出了,但是随后我在Visual Studio中发布了我的旧函数项目,它将其恢复为V1。
我看到是否在Visual Studio中创建了一个新的功能项目,它将询问我是否要使用V1或V2。无论如何,有什么要升级现有项目的,还是我必须创建一个新的项目? (如果我必须创建一个新的副本并飞过去,这还不是世界末日,但这会很好)
答案 0 :(得分:4)
Azure Function 2.x运行时基于.NET Core 2,并且要求功能代码以.NET Standard为目标。您的旧函数是v1,这意味着它们的目标框架是Full .NET Framework。即使在门户网站上将Function运行时版本设置为〜2,Azure仍可以告诉代码实际上是运行时〜1的代码。
我确实建议您创建模板v2函数并将旧内容与新v2模板进行比较。
依赖项
对于v2,我们需要安装触发器和绑定的扩展名(http和timer除外)。当我们在VS中创建函数项目或添加单个函数(右键单击项目>添加>新Azure函数)时,相应扩展的软件包将自动安装,我们在使用输入/输出绑定时只需手动安装packages for v2
功能代码
由于目标框架的不同,通常需要修改代码(例如将日志类型从TraceWriter
更改为ILogger
)。
配置
检查host.json
是否有与扩展名和日志相关的settings,其格式已更改。
除了需要我们手动进行的这些更改之外,还有许多feature changes在迁移到2.x运行时时要注意。