我有一个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是否可以暂停自身,还是需要从外部服务暂停?
答案 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-