如何使用基于Azure Resource Manager的PowerShell部署Azure Web Apps?

时间:2017-02-16 12:38:39

标签: asp.net powershell azure deployment azure-resource-manager

我想使用PowerShell部署我的Azure网络应用程序。这是我预期的工作流程:

  • 使用MSBuild创建包
  • 将程序包部署到Azure

我尝试了以下链接中描述的方法: https://github.com/gregpakes/DoIHaveGPS/blob/master/PublishScripts/Publish-WebApplication.ps1

我修改了脚本以使用现有的Web应用程序而不是创建。所以我打电话给Get-AzureWebsite -Name $ Config.name ..

但由于订阅问题,它从未找到现有的应用服务(网络应用)。我尝试了很多次来切换订阅,但它没有用。 Get-AzureWebsite始终会继续搜索我不再使用的旧订阅。

如果我从powershell调用Get-AzureRmSubscription,我会收到两个订阅,但如果我调用Get-AzureSubscription,我只能获得一个订阅。

如何使用PowerShell使用基于资源管理器的PowerShell部署我的应用程序包?

3 个答案:

答案 0 :(得分:1)

您链接到的脚本使用的cmdlet正在使用" old"服务管理界面。如果Get-AzureSubscription没有返回订阅,这意味着它只能通过AzureRM使用。 AzureRM Web应用程序cmdts没有简单的发布"像旧的命令那样...所以如果你想在PowerShell中复制它,你可以这样做:

$deploycmd = "$env:ProgramFiles\IIS\Microsoft Web Deploy V3\msdeploy.exe"

$packageLocation = Resolve-Path -Path "C:\users\bjm\downloads\package.zip"

$webAppName = 'myazuresite'
$user = '$myazuresite'
$pass = 'jSjku1lWBdZNgGjyZWYfDhFn4DFfZlAqTq1RjPu5Fnv3yYe9l2Fl5xz5RK0x'
$setParam =  "-setParam:name=""IIS Web Application Name"",value=$webAppName"
$dest = "-dest:auto,ComputerName='https://$webAppName.scm.azurewebsites.net:443/msdeploy.axd?site=$webAppName',UserName='$user',Password='$pass',AuthType=Basic"

& $deploycmd "-verb:sync", "-source:package=$packageLocation", $setParam, $dest

我实际上更喜欢juvchan的方法,但是如果你已经通过PS获得了其余部分,那么这可能会更容易。

答案 1 :(得分:0)

为应用程序创建Web部署程序包后,需要创建Azure资源管理器(ARM)模板,该模板允许您使用Web部署程序包部署到Azure Web应用程序。

然后,您可以使用下面的Azure PowerShell cmdlet在上面部署ARM模板,以实现您的需求。

New-AzureRmResourceGroupDeployment -Name <deployment-name> -ResourceGroupName <resource-group-name> -TemplateUri <ArmTemplateJsonUri>

有用的参考资料:

Deploy a web app with MSDeploy, custom hostname and SSL certificate

Deploy your app to Azure App Service

答案 2 :(得分:0)

https://github.com/Microsoft/azure-docs/blob/master/articles/azure-resource-manager/resource-group-template-deploy-cli.md https://github.com/Microsoft/azure-docs/blob/master/articles/azure-resource-manager/resource-group-template-deploy-cli.md

本主题说明如何将Azure门户与Azure Resource Manager一起使用以部署Azure资源。要了解有关管理资源的信息,请参阅通过门户管理Azure资源。目前,并非每个服务都支持门户或资源管理器。对于这些服务,您需要使用经典门户。有关每个服务的状态,请参阅Azure门户可用性图表。 1.要创建空资源组,请选择新建&gt;管理&gt;资源组。 2.为其指定名称和位置,如有必要,请选择订阅。您需要提供

的位置