簡體   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