具有 Python 和高级计划的 Azure Functions:尽管是 3.8 版。选择 3.6。被部署

Azure Functions with Python and Premium Plan: Despite version 3.8. selected 3.6. gets deployed

我使用 Python 3.8 部署了一个 Azure Functions 应用程序。后来我尝试使用数据类,但失败了,除了可用版本不支持数据类。然后我通过 SSH 连接到 Function App 的主机,并通过使用 python --version 发现实际安装了版本 3.6。由于数据类可从 3.7 获得,因此无法使用此模块是有道理的。

但是我该怎么做才能在 Function App 主机上实际拥有版本 3.8 运行?

这是一个已知问题(参见 https://docs.microsoft.com/en-us/answers/questions/39124/azure-functions-always-using-python-36.html),希望尽快解决。

作为解决方法,您可以 运行 以下命令,例如在云端 shell:

az functionapp config set --name <func app name> --resource-group <rg name> --subscription <subscription id> --linux-fx-version "DOCKER|mcr.microsoft.com/azure-functions/python:3.0.13353-python3.8-appservice"

之后您需要等待一段时间才能再次使用函数应用程序。此外,我还发现安装的软件包已经消失。因此,您还需要重新发布您的函数(在 requirements.txt 中定义必要的包)。

对于任何 运行 遇到这个问题的人来说,降级到 Python 3.6 是一种解决方法。

我尝试了@quervernetzt 的解决方案,但它没有用,我的管道开始出现以下错误。

##[error]Error: Error: Failed to deploy web package to App Service. Conflict (CODE: 409)