0

我在 Azure 中有几个 Persistent VM,我想在某些情况下以编程方式启动/停止。但是他们已经手动启动或停止了。

有没有办法通过 REST API 判断 VM 是否已启动?

4

1 回答 1

0

您可以调用Get Deployment操作(它也可以在您的 Persistent VM 上工作),这将为您提供部署状态,您可以使用它来决定您需要在 VM 上执行操作。

class Program
    {
        static string subscriptionId = "subscription id";
        static string certificateData = "Data from ManagementCertificate node in publish setting file ";
        static string cloudServiceName = "name of the cloud service";
        static X509Certificate2 cert = null;
        static void Main(string[] args)
        {
            cert = new X509Certificate2(Convert.FromBase64String(certificateData));
            Test2();
            Console.ReadLine();
        }

        static void Test2()
        {
            string endpoint = string.Format("https://management.core.windows.net/{0}/services/hostedservices/{1}/deploymentslots/production", subscriptionId, cloudServiceName);
            HttpWebRequest req = (HttpWebRequest)WebRequest.Create(endpoint);
            req.ClientCertificates.Add(cert);
            req.ContentType = "application/xml";
            req.Headers.Add("x-ms-version", "2013-03-01");
            req.Method = "GET";
            try
            {
                using (var resp = req.GetResponse())
                {
                    using (StreamReader sr = new StreamReader(resp.GetResponseStream()))
                    {
                        var responseData = sr.ReadToEnd();
                        Console.WriteLine(responseData);
                    }
                }
            }
            catch (WebException webEx)
            {
                using (var resp = webEx.Response)
                {
                    using (StreamReader sr = new StreamReader(resp.GetResponseStream()))
                    {
                        var errorDetails = sr.ReadToEnd();
                        Console.WriteLine(errorDetails);
                    }
                }
            }

        }
于 2013-10-04T02:52:05.613 回答