visual-studio - 在 Visual Studio 中升级 Azure 函数项目
问题描述
所以 Azure Functions v2 已经发布,如果我在 azure 中创建一个新函数并将其设置为 V2,但随后我在 Visual Studio 中发布我的旧函数项目,它会将其转回 V1。
我看看我是否在 Visual Studio 中创建了一个新的函数项目,它会问我是想要 V1 还是 V2。无论如何升级现有项目,还是我必须创建一个新项目?(如果我必须创建一个新的并复制苍蝇,这不是世界末日,但它会很好)
解决方案
Azure Function 2.x 运行时基于 .NET Core 2,并且需要针对 .NET Standard 的函数代码。您的旧函数是 v1,这意味着它们的目标框架是完整的 .NET Framework。即使您在门户上将 Function 运行时版本设置为 ~2,Azure 也可以判断代码实际上是用于运行时 ~1。
我建议您创建一个模板 v2 函数并将旧内容与新 v2 模板进行比较。
依赖项
对于 v2,我们需要为触发器和绑定安装扩展,除了 http 和 timer。当我们在VS中创建函数项目或添加单个函数(右键项目>添加>新建Azure函数)时,会自动安装相应扩展的包,我们只需要在使用输入/输出绑定时手动安装v2的包。
功能码
由于目标框架的不同,通常需要修改代码(比如日志类型由
TraceWriter
改为ILogger
)。配置
检查
host.json
是否有与扩展和日志相关的设置,其格式已更改。
除了这些我们需要手动进行的更改之外,在迁移到 2.x 运行时我们还应该注意许多功能更改。
推荐阅读
- sql - SQL根据值将一列拆分为两列并使用列
- python - 删除 Python 字典中的嵌套键
- python - Django 'Image' 对象没有属性 '_committed'
- node.js - 如何在 mongoose 中获取数组中最后一个元素的数据?
- javascript - express 项目中的嵌套路由
- security - Ansible 的 docker_container 模块不支持 cap_drop 来限制对内核 caps 的访问
- c++ - C ++打印模板容器错误(错误:'operator <<'的模糊重载)理解?
- laravel - 在 Laravel 中填写显示先前填写的数据的表单后,使用什么来显示成功消息?
- javascript - 无法使用带有 X509 用户的 mongoose 连接到 Mongo DB
- android - Android-Firebase 数据未显示在 ArrayList 中