如何使用PowerShell使Azure Cloud Service暂停自身

时间:2015-09-29 19:52:45

标签: powershell azure azure-cloud-services

我有一个azure云服务,我希望它在作业完成后暂停。我有一个方法(下面)可以从控制台应用程序暂停云服务,但是当我放置方法并从已部署的云服务中调用它时,它不会挂起自己。

    public void StopService(string serviceName, string email, string password)
    {
        using (PowerShell script = PowerShell.Create())
        {
            script.AddScript(string.Format("$password = ConvertTo-SecureString \"{0}\" -AsPlainText -Force", password));
            script.AddScript(string.Format("$userName = \"{0}\"", email));
            script.AddScript(string.Format("$creds = New-Object System.Management.Automation.PSCredential ($userName, $passwprd)"));

            /*Code to sign in to azure subscription
             * ...
             * ...
            */

            script.AddScript(string.Format("$Status = (Get-AzureDeployment -ServiceName \"{0}\").Status", serviceName));
            script.AddScript(string.Format("if($Status -eq \"Running\") {1} Get-AzureService -ServiceName \"{0}\" | Stop-AzureService {2}", serviceName, _bracketOpen, _bracketClose));
            script.AddScript(string.Format("(Get-AzureDeployment -ServiceName \"{0}\").Status", serviceName));

            Collection<PSObject> result = script.Invoke();
        }
    }

Azure Cloud Service是否可以暂停自身,还是需要从外部服务暂停?

2 个答案:

答案 0 :(得分:1)

您必须使用Set-AzureDeployment cmdlet。这是一个基本的例子:

Set-AzureDeployment -Status -ServiceName "MySvc1" -Slot "Production" -NewStatus "Suspended"

请注意,暂停Cloud Service并不意味着您不会为此付费。它类似于在没有释放的情况下关闭VM。停止消耗资源的唯一方法是删除部署。

更多信息:

https://msdn.microsoft.com/en-us/library/azure/dn495140.aspx

答案 1 :(得分:0)

您可以做的另一件事是您可以使用azure自动化Runbook,它会持续监控您的云服务的状态,并根据您的要求停止/暂停它。

Link-

http://blogs.technet.com/b/keithmayer/archive/2014/04/04/step-by-step-getting-started-with-windows-azure-automation.aspx