2015-04-13 1 views

Répondre

1

Cela n'est pas possible pour un rôle, vous devez effectuer un nouveau déploiement avec les paramètres modifiés. Vous pouvez cependant changer le nombre d'instances sans redéployer peut-être que cela pourrait vous aider?

Sur simple VM vous pouvez utiliser l'extrait powershell suivant:

Get-AzureVM –ServiceName $ServiceName –Name $Name | 
Set-AzureVMSize $VMSize | 
Update-AzureVM 

Taken from here

+0

Je pense que cela ne s'applique pas aux rôles web/worker. Pour eux, il faudrait reconstruire le paquet et le redéployer. –

+0

Désolé ma mauvaise j'ai en quelque sorte manqué que c'était un rôle sur le Web. Ensuite, je ne pense pas qu'il existe un moyen de changer la taille de l'instance seulement le nombre d'instances – jakobandersen

+0

Oui, j'ai essayé d'utiliser Set-AzureVMSize, mais je ne pouvais pas le faire fonctionner pour le rôle Web. –

2

Vous pouvez utiliser l'applet de commande Set-AzureDeployment pour mettre à niveau une taille de WebRole, que vous pouvez ensuite travailler dans votre PowerShell existante scénario. Par exemple, si vous déployez automatiquement chaque service Web client/rôle Web à un niveau de base/échelle et ne les mis à niveau vers une plus grande capacité au besoin, vous pouvez ensuite utiliser l'applet de commande suivante au besoin:

Set-AzureDeployment -Upgrade -ServiceName "MySvc1" -Mode Auto ` 
    -Package "C:\Temp\MyApp.cspkg" -Configuration "C:\Temp\MyServiceConfig.Cloud.csfg" 

je voudrais Imaginez que vous ajoutiez simplement un paramètre à votre script PowerShell actuel et, si spécifié, exécutez la cmdlet ci-dessus pour mettre à niveau le rôle Web Azure.

+0

Cela signifie toujours que je devrais changer vmsize dans mon .csdef avant de construire le .cspkg, non? J'essaye d'avoir seulement un .csdef et un .cscfg pour tous mes déploiements et en utilisant ensuite une seule version de build dans la ville d'équipe, utilisez Octopus pour les remplacements de configuration et d'autres trucs de configuration personnalisés. Je pense à modifier le fichier .csdef avant la construction du paquet, mais il faudrait alors que je sache ce que vmsize doit mettre en place et que seul Octopus connait réellement pour le moment. –

+0

Non, vous n'avez pas besoin de connaître la taille de la machine virtuelle, car vous pouvez simplement déployer de petites instances en tant que standard et utiliser cette applet de commande pour la mise à niveau si nécessaire. – FoxDeploy

+1

Si vous voulez dire mise à jour manuelle (en utilisant powershell) dans les cas où je sais que je veux une taille de VM spécifique, alors oui je sais que je peux le faire, mais autant que je puisse voir ce script ne m'aide pas à automatiser un rôle web avec différentes tailles de vm basées sur l'environnement. –

0

Nous utilisons MSBuild pour convertir la taille de VM dans le fichier de définition de service. Cela fait partie de l'étape de construction qui s'exécute avant le déploiement.

<Target Name="ChangeVM"> 
    <RegexReplace 
    Pattern='vmsize="Standard_D3"' 
    Replacement='vmsize="$(VMSize)"' 
    Files='../Web/ServiceDefinition.csdef' /> 
</Target> 

(VMSize) est le paramètre provenant de votre serveur de construction.