无法使用高级服务计划部署 Azure Functions

Unable to deploy Azure Function with Premium Service Plan

当我尝试使用以下命令创建 FunctionApp 高级计划时:

# Create a Resource Group
az group create \
    --name $rg_name \
    --location $az_loc

# Create a Function App Storage Account
az storage account create \
    --name $fa_storage_name \
    --resource-group $rg_name \
    --location $az_loc \
    --sku Standard_LRS

# Create a Premium plan
az functionapp plan create \
    --name $fap_name \
    --resource-group $rg_name \
    --location $az_loc \
    --sku P2v2

我收到一个错误:

The requested app service plan cannot be created in the current resource group because it is hosting Linux apps. Please choose a different resource group or create a new one.

我也尝试了 sku EP2 结果相同。很难在文档 (!) 中找到 SKU。有谁知道哪个 sku 与 Linux Azure Functions 一起工作以及我在这里可能遗漏了什么?

这是常见错误。

解决办法是新建一个Resourse Group,把函数app放进去

问题来自于基于windows和基于linux的azure函数计划之间的冲突。

创建一个新的资源组是唯一的方法,并且在开发中注意根据linux和windows分离功能。

这是最终对我有用的东西。注意 az functionapp plan create 中的 --is-linux true 标志和 az functionapp create 中的 --plan 标志:

# Create a Premium plan
az functionapp plan create \
  --name $fap_name \
  --is-linux true \
  --resource-group $rg_name \
  --location $az_loc \
  --sku EP2

# Create Function App (container for Azure Function)
#--consumption-plan-location $az_loc \
az functionapp create \
  --name $fa_name \
  --resource-group $rg_name \
  --storage-account $fa_storage_name \
  --plan $fap_name \
  --os-type Linux \
  --runtime python \
  --runtime-version 3.7 \
  --subscription $az_sub \
  --functions-version 2

目前的限制是 Windows 和 Linux 应用程序不能存在于同一资源组中。

https://docs.microsoft.com/en-us/azure/app-service/containers/app-service-linux-intro#limitations

因此,它在部署 Windows 资源时失败,但在 --is-linux 设置为 true

时有效