我想为自己创建一个启动/停止Azure VM bot。我想做的是有一个松弛/电报机器人,它通过命令/开始/停止来监听消息并启动/停止我的VM。我应该使用什么REST api命令来做到这一点?
需要什么:
C#中的一些示例代码调用azure管理API来启动解除分配的虚拟机
一些参考,我可以获取API方法参数的值(例如订阅ID,资源ID等)。
同时
我已阅读this个问题,但它并没有帮助我理解如何处理授权以及从何处获取这些参数。
我正在使用C#语言创建该机器人。
答案 0 :(得分:2)
调用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}
。
如何处理授权
您可以检查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,请参考它。