当我尝试使用以下命令创建函数应用高级计划时:
# 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
我收到一个错误:
无法在当前中创建请求的应用服务计划 资源组,因为它托管 Linux 应用。请选择一个 不同的资源组或创建一个新的资源组。
我也尝试了 skuEP2
,结果相同。SKU真的很难在文档中找到(!有谁知道哪个SKU适用于Linux Azure Functions,以及我在这里可能缺少什么?
这是常见的错误。
解决方案是创建新的资源组并将函数应用放入其中。
问题来自基于Windows的azure函数计划和基于Linux之间的冲突。
创建新的资源组是唯一的方法,请注意在开发中根据 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://learn.microsoft.com/en-us/azure/app-service/containers/app-service-linux-intro#limitations
因此,它在部署 Windows 资源时失败,而在 --is-linux 设置为 true 时工作