【发布时间】:2015-04-13 11:35:29
【问题描述】:
我想在部署期间更改正在运行的 Azure Web 角色的 vmsize,最好使用 powershell。
这可能吗?
这里的用例是,并非我们所有的客户(和测试环境)都应该运行相同的 vm 大小,但它们都使用相同的 .csdef 文件。
【问题讨论】:
标签: azure azure-web-roles azure-powershell
我想在部署期间更改正在运行的 Azure Web 角色的 vmsize,最好使用 powershell。
这可能吗?
这里的用例是,并非我们所有的客户(和测试环境)都应该运行相同的 vm 大小,但它们都使用相同的 .csdef 文件。
【问题讨论】:
标签: azure azure-web-roles azure-powershell
您可以使用 Set-AzureDeployment cmdlet 升级 webrole 大小,然后您可以将其用于现有的 PowerShell 脚本。例如,如果您在基本级别/规模上自动部署每个客户 Web 服务/Web 角色,然后只根据需要将它们升级到更大的容量,那么您可以根据需要使用以下 cmdlet:
Set-AzureDeployment -Upgrade -ServiceName "MySvc1" -Mode Auto `
-Package "C:\Temp\MyApp.cspkg" -Configuration "C:\Temp\MyServiceConfig.Cloud.csfg"
我设想您只需向当前的 PowerShell 脚本添加一个参数,如果指定,则运行上述 cmdlet 以升级 Azure Web 角色。
【讨论】:
这对于角色来说是不可能的,您必须在设置更改的情况下进行新部署。但是,您可以在不重新部署的情况下更改实例数量,这可能对您有帮助吗?
在普通 VM 上,您可以使用以下 powershell sn-p:
Get-AzureVM –ServiceName $ServiceName –Name $Name |
Set-AzureVMSize $VMSize |
Update-AzureVM
【讨论】:
我们使用MSBuild 来转换服务定义文件中的VM 大小。它是在部署之前运行的构建步骤的一部分。
<Target Name="ChangeVM">
<RegexReplace
Pattern='vmsize="Standard_D3"'
Replacement='vmsize="$(VMSize)"'
Files='../Web/ServiceDefinition.csdef' />
</Target>
(VMSize) 是来自构建服务器的参数。
【讨论】: