繁体   English   中英

如何通过Azure管理API打开/关闭Azure虚拟机(其余)

[英]How to turn on/off Azure virtual machine via Azure management api (rest)

我想为自己创建一个启动/停止Azure VM机器人。 我想要做的是拥有一个侦听消息并通过命令/ start / stop启动/停止我的VM的Slack / Telegram机器人。 我应该使用哪个REST api命令来做到这一点?

需要什么:

C#中的一些示例代码调用了Azure管理API以启动释放的虚拟机

我可以从中获取API方法参数值的一些参考(例如,订阅ID,资源ID等)。

我已经阅读了这个问题,但是它并没有帮助我了解如何处理授权以及在何处获取这些参数。

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

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

虚拟机REST API列出了虚拟机上的操作。 要启动虚拟机,可以尝试使用以下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}

在此处输入图片说明

如何处理授权

您可以查看本文以开始使用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;

此外,本文还介绍了如何创建可以访问资源的AD应用程序和服务主体 ,请参考。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM