2017-10-06 155 views
0

我想为自己创建一个启动/停止Azure VM bot。我想要做的是有一个松懈/电报机器人监听消息并通过命令/开始/停止启动/停止我的虚拟机。我应该用什么REST api命令来做到这一点?如何通过Azure管理API(休息)打开/关闭Azure虚拟机

需要什么样的:

在C#示例代码,调用Azure管理API启动重新分配的虚拟机

一些参考我在哪里可以得到API方法参数值(例如订阅ID,资源ID等)。

此外

我已阅读this的问题,但它并没有帮助我了解如何处理授权和在哪里得到这些参数。

我正在使用C#语言创建该机器人。

+0

添加更多关于你想达到的细节。您尝试发布的链接不起作用。 –

回答

0

调用Azure管理API启动重新分配的虚拟机

Virtual Machines REST API列出了操作上的虚拟机。启动虚拟机,你可以尝试this API

POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/virtualMachines/{vm}/start?api-version={apiVersion} 

在那里我可以得到API方法参数(例如订阅ID,资源ID等)的值。

您可以在Azure门户上找到{subscriptionId}{ resourceGroup}

enter image description here

如何处理授权

您可以检查this article开始使用Azure的REST操作,并要求认证。你可以参考下面的代码来获取访问令牌。

string tenantId = "{tenantId}"; 
string clientId = "{clientId}"; 
string clientSecret = "{secret}"; 
string subscriptionid = "{subscriptionid}"; 

string authContextURL = "https://login.windows.net/" + tenantId; 
var authenticationContext = new AuthenticationContext(authContextURL); 
var credential = new ClientCredential(clientId, clientSecret); 
var result = await authenticationContext.AcquireTokenAsync(resource: "https://management.azure.com/", clientCredential: credential); 

if (result == null) 
{ 
    throw new InvalidOperationException("Failed to obtain the JWT token"); 
} 

string token = result.AccessToken; 

此外,本文解释如何create AD application and service principal that can access resources,请参阅它。

+0

工作就像一个魅力!谢谢! –