无法从门户测试升级的Azure功能

zbdgwd5y  于 2023-01-21  发布在  其他
关注(0)|答案(2)|浏览(140)

我们有一个Azure函数与计时器触发器,这是使用函数版本3.0和.NET 3.1开发的。此函数运行在Windows应用程序服务计划上的Azure。所以,我已经升级到函数版本4.0和.NET 6.0使用以下步骤:

升级本地项目需要在.csproj XML项目文件中进行以下更改:

1.将属性组.TargetFramework的值更改为net6.0。
1.将属性组.AzureFunctionsVersion的值更改为v4。
1.将现有的ItemGroup.PackageReference列表替换为以下ItemGroup:图像进行这些更改后,更新后的项目应如以下示例所示:图像
1.升级local.settings.json文件映像
1.在本地运行功能应用程序并验证功能。

在Azure中升级你的功能应用

1.运行以下命令以在Azure中的函数应用上将FUNCTIONS_EXTENSION_VERSION应用设置设置为~4。
az函数应用程序配置应用程序设置集--设置函数扩展版本=~4 -g<RESOURCE_GROUP_NAME>-n<APP_NAME>
1.更改函数应用程序的.NET版本。如果函数应用程序托管在Windows上,请运行以下命令。
az功能应用程序配置集--网络框架版本v6.0 -g<RESOURCE_GROUP_NAME>-n<APP_NAME>
但是,我无法从Azure门户测试或查看function.json文件。

qyuhtwio

qyuhtwio1#

我已经在VS 2022 IDE中使用了带计时器触发器的.NET 3.1 Azure函数项目:

已将.NET Core 3.1 Azure Functions项目发布到Azure门户中的Azure Function应用程序,然后按照以下MS文档使用Azure CLI命令将FUNCTIONS_EXTENSION_VERSION更改为4:

迁移到V4-.NET 6后在本地运行

然后,将迁移的项目部署到Azure Function App并进行测试,如下所示:

k3bvogb1

k3bvogb12#

我能够通过从Azure门户运行“诊断并解决问题”找到问题的原因。
此问题与功能名称有关。我的功能名称长度超过32个字符。默认情况下,主机ID是从功能应用程序名称自动生成的,即取前32个字符。如果您有多个功能应用程序共享一个存储帐户,并且它们都使用相同的主机ID(生成的或显式的),可能导致主机ID冲突。例如,如果多个应用程序的名称超过32个字符,则它们的计算ID可能相同。请考虑两个名称为myfunctionappwithareallylongname-eastus-production的功能应用程序以及

我的函数应用程序具有实际的别名-westus-生产

共享同一存储帐户。这些名称的前32个字符相同,因此将为每个名称生成相同的主机IDmyfunctionappwithareallylongname(有关详细信息,请参阅https://github.com/Azure/azure-functions-host/wiki/Host-IDs#host-id-collisions)。
因此,为了解决这个问题,我只需要在Azure上重命名函数名。

相关问题