使用Azure Powershell在应用服务环境中创建Azure应用服务计划

5
我正在尝试使用Azure应用服务环境(ASE),但我在使用Powershell创建ASE内的应用服务计划(ASP)时遇到了困难。我尝试使用New-AzureResourceNew-AzureResourceGroupDeployment cmdlets进行操作,但两者都以不太有帮助的方式失败了。我们需要能够通过编程方式创建这些内容,以便进行CI配置和部署流程(使用TeamCity)。
由于手动创建ASE需要3个小时以上才能完成(附注:为什么,Microsoft,为什么ASE上的任何操作都要花费3个小时以上?),因此我手动创建了ASE,并将工作池1定义为双节点P1池。
然后,通过巧妙地使用http://resources.azure.com工具,我能够提取定义ASP的属性。
因此,我创建了一个新ASP的简单模板:
{
    "$schema": "http://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
"resources": [

        {
            "apiVersion": "2015-06-01",
            "name": "rg-ase-dev-asp-wp1-2",
            "type": "Microsoft.Web/serverfarms",
            "location": "East US",
            "properties": {
                "name": "rg-ase-dev-asp-wp1-2",
                "sku": "Premium",
                "workerSize": 0,
                "numberOfWorkers": "1",
                "hostingEnvironmentId": "[resourceId('Microsoft.Web/hostingEnvironments',parameters('rg-ase-dev'))]"
            }
        }
    ]
}

然后使用模板:
reResourceGroup1\Templates> New-AzureResourceGroupDeployment -ResourceGroupName
"rg-ase-dev" -TemplateFile .\ase_asp_only.json -Verbose
VERBOSE: 12:37:28 PM - Template is valid.
VERBOSE: 12:37:29 PM - Create template deployment 'ase_asp_only'.
VERBOSE: 12:37:36 PM - Resource Microsoft.Web/serverfarms
'rg-ase-dev-asp-wp1-2' provisioning status is running

这个命令会持续失败(即在预览门户中生成部署失败通知),几个小时后,我想它会被 Azure 后端杀掉。
我尝试了模板中大多数 ASP 属性值的组合,但没有一个有效。我还尝试创建一个 ASP 和一个依赖的 WebApp 在同一模板中,认为由于只有当 WebApp 与它们绑定时 ASP 才能存在,这可能是我的问题。但这也失败了。
有人成功地使用模板化 ASP 进行部署吗?或者这是一个受支持的操作吗?

我使用模板部署应用服务计划,但不在 ASE 中。 - BenV
@BenV 你能否贴出一个合适的ASP模板片段?我已经从ASE中提取了所有内容,但仍然无法创建一个简单的Webapp/ASP/Resource Group堆栈。不过,今天Azure一整天都很不稳定,所以我不知道我是看到了那些问题,还是我完全错过了ASP模板的某些东西。 - thundercats go
它看起来与您的差不多,只是没有 hostingEnvironmentId。我还使用 apiVersion 2014-06-01。当我将其更改为2015时,我得到了您描述的相同结果。 - BenV
2个回答

3
所以,Azure缺乏充分的文档并浪费了我的时间,这一点并不令人惊讶。 问题出在ASE资源的apiVersion上。你不能使用最新版本,看起来版本是资源特定的,但似乎只有在创建新资源时才重要,所以根据操作的不同结果也会不一样。 还有令人担忧的是,模板验证完全没有问题,但实际部署却会挂起。如果你遇到类似问题的挂起部署,请检查你的apiVersion。
PS C:\Templates> New-AzureResourceGroupDeployment -ResourceGroupName
"rg-ase-dev"  -TemplateFile .\ase_asp_only.json -Verbose
VERBOSE: 12:08:24 PM - Template is valid.
VERBOSE: 12:08:25 PM - Create template deployment 'ase_asp_only'.
VERBOSE: 12:08:27 PM - Resource Microsoft.Web/serverFarms
'rg-ase-dev-asp-wp1-2' provisioning status is running

(this hangs)

据我所知,ARMExplorer在资源链接中提供了有效的apiVersion,因此我将继续使用这些版本进行工作,直到微软必然再次破坏它为止。真是太麻烦了。

1
PS:在 ASE 中成功创建 ASP 需要在其模板中提供 hostingEnvironment 参数。仅使用 hostingEnvironmentId 将无法正常工作。 - thundercats go

0
我建议使用gallery template创建一个空的Web应用程序,该应用程序将创建一个应用服务计划和一个Web应用程序。
  New-AzureResourceGroup -Name <groupname> -Location "<location>" -GalleryTemplateIdentity Microsoft.WebSite.0.3.17-preview

为了保存模板,您可以

  Save-AzureResourceGroupGalleryTemplate -Identity Microsoft.WebSite.0.3.17-preview -Path <local path to save file>

他想在App Service环境中创建应用服务计划,而标准模板无法完成此任务。 - BenV

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接