将 Azure Functions(linux 托管)从消费计划转移到高级计划

Moving Azure Functions (linux hosted) from Consumption to Premium Plan

我有一个包含消费计划的现有 Azure 函数,但是,我需要将其移至高级计划。在创建函数应用程序时,我为 OS 选择了 linux。

到目前为止,我创建了一个高级计划,然后 运行 通过 azure-cli 执行以下操作:

az functionapp update --name <name-of-the-app> --resource-group <resource-group> --plan <premium-plan>

它给了我以下信息:

This feature currently supports windows to windows plan migrations. For other migrations, please redeploy.

问题:

截至目前,此问题 - 将 Azure Linux 功能应用程序从消费托管计划移动到高级托管计划已在 GitHub.

中开放

这被标记为功能请求。

甚至将消费计划迁移到专用计划也在 Open Issue in the GitHub 中,JeffHollan 给出了手动迁移方法,但他也推荐了解决方案 - 创建新应用re-publishing .

找到解决办法。您可以使用 az resource update 命令来完成。 Official Documentation / GitHub

有两种方法可以做到:

为 Azure 资源使用 UI (https://resources.azure.com/)

  • 在以下位置找到您的应用:your-subscription/resourceGroup/your-resource-group/Microsoft.Web/sites/
  • 检查 numOfWorkers。如果它是 -1,请将其更改为 1,因为它应该大于 0(如果应用程序是在 '21 之前创建的,则可能是这种情况)
  • 然后将 serverFarmID 更改为您最新的高级计划的资源 ID。

使用 Azure CLI

  • 安装使用:brew install azure-cli (macOS)
  • 使用az login
  • 登录
  • 使用以下方法将 numOfWorkers 更改为 1:az resource update --resource-type "Microsoft.Web/sites" --name <your-app> --resource-group <your-resource-group> --set properties.numOfWorkers=1
  • 现在您可以更改 serverFarmID 以指向新的高级计划:az resource update --resource-type "Microsoft.Web/sites" --name <your-app> --resource-group <your-resource-group> --set properties.serverFarmId=<premium-plan-resource-id>