使用基于容器镜像的New-AzWebApp创建新的azure web应用程序

问题描述 投票:0回答:1

我的目标是使用 powershell 实现一些目标,以自动从 powershell 创建 azure Web 应用程序。

New-AzWebApp -ResourceGroupName $ResourceGroupName -Name $WebAppName -Location 'West Europe' 
-AppServicePlan $ServicePlan -ContainerImageName "one/image:latest"

cmdlet 工作正常...但是以这种方式创建的应用程序仍然具有这种堆栈(单击下面查看图像,尚未获得权限)。

堆栈错误

如果我通过 Azure 门户执行此操作并使用 docker 映像创建此类 Web 应用程序。 堆栈是(点击下面查看图片,还没有权限):

堆栈没问题

我能够通过运行此 cmdlet 来修复堆栈:

Set-AzResource -ResourceId "/subscriptions/$SubscriptionId/resourceGroups/$ResourceGroupName/providers/Microsoft.Web/sites/$WebAppName/config/web" 
-Properties @{"linuxFxVersion"="DOCKER|$dockerImage"} -Force

然后 UI 在属性中显示正确的信息...但是如果我检查应用程序日志数据...它不会拉取我的 docker 映像,它仍然会拉取另一个映像(不是我在原始

new-azwebapp 中设置的那个) 
cmdlet)。

如果我检查手动创建的 Web 应用程序,日志会显示为该 Web 应用程序提取了正确的图像。
如何在不使用门户的情况下基于 docker 容器创建这样的 Web 应用程序?
我期望 MS PowerShell Azure 模块中的 cmdlet 创建一个基于 docker 映像的 Web 应用程序,就像我从 Azure 门户本身执行此操作一样。

最终结论:

powershell cmdlet 与 cli cmdlet 不会创建相同的 azure Web 应用程序。你们中有人已经面临这个问题了吗?

CLI cmd 似乎正确创建了 Web 应用程序。

az webapp create --resource-group ResourceGroupName --plan WebAppPlan --name WebAppName --deployment-container-image-name one/image:latest

PowerShell cmdlet 似乎无法正确创建 Web 应用程序。

New-AzWebApp -ResourceGroupName ResourceGroupName  -Name WebAppName -AppServicePlan WebAppPlan -ContainerImageName "one/image:latest"
azure powershell azure-web-app-service azure-powershell powershell-az-module
1个回答
0
投票

如果要在 Azure 应用服务上创建基于容器的 Web 应用,则在正确的应用服务计划中创建它非常重要。应用程序服务计划分为三种类型:

  1. Windows ASP
  2. Windows 容器 ASP
  3. Linux ASP

例如,如果您尝试创建 Windows 容器 Web 应用程序,请使用以下命令:

New-AzAppServicePlan -名称“PV3ASP”-位置“West US 2”-ResourceGroupName“Xenon”-Tier PremiumV3 -HyperV

New-AzWebApp -名称“xapp”-AppServicePlan“PV3ASP”-位置“West US 2”-ResourceGroupName“Xenon”-ContainerImageName“mcr.microsoft.com/azure-app-service/windows/parkingpage:latest”-ContainerRegistryUrl - ContainerRegistry用户-ContainerRegistry密码

请注意,New-AzAppServicePlan 具有 -HyperV 标志,该标志指示在支持 Hyper-V 嵌套虚拟化的特殊计算机中创建 ASP,这是为 Windows 容器提供动力所需的。

如果您的容器是 Linux 容器,只需将 -HyperV 标志替换为 -Linux,这将指示必须使用 Linux 计算机配置 ASP 来为您的 Linux 容器提供支持。

欲了解更多信息:

https://learn.microsoft.com/en-us/powershell/module/az.websites/new-azappserviceplan?view=azps-12.3.0

https://learn.microsoft.com/en-us/powershell/module/az.websites/new-azwebapp?view=azps-12.3.0

© www.soinside.com 2019 - 2024. All rights reserved.