Как программно с помощью C # получить или обновить, или переключить, или управлять параметрами автоматического выключения для выбранной виртуальной машины Azure на портале Azure? - PullRequest
1 голос
/ 25 июня 2019

Я пытаюсь программно с помощью C # получить подробную информацию о параметрах автоматического выключения для выбранной виртуальной машины с портала Azure. То, чего я хочу достичь, дано ниже:

  1. Во-первых, получить статус автоматического выключения, он включен или отключен?
  2. Если он включен, получить время автоматического выключения и информацию о часовом поясе
  3. На основе обновления входных данных часового пояса и времени или отключения статуса автоматического выключения по необходимости

Я хочу, чтобы это было сделано через программу C #.

Я не знаю, как добиться этого с помощью поиска в Google, который я сделал. Пожалуйста, предоставьте подробное пошаговое руководство, как этого добиться, поскольку я новичок в кодировании, C # и AZURE

Обратите внимание, что виртуальные машины в нашем проекте не создаются ни в каких лабораториях DevTest, они создаются непосредственно через LCS и с опцией DEMO env при создании.

Не могли бы вы предоставить подробную информацию, принимая во внимание вышеуказанные моменты? Или это невозможно, так как шаг неверный?

Пожалуйста, дайте мне знать, нужна ли какая-либо другая информация с моей стороны, чтобы вы могли предоставить мне решение.

Я уже изучил ниже сценарий PowerShell:

Как определить время автоматического выключения виртуальной машины Azure с помощью PowerShell?

Но, похоже, это касается виртуальной машины, созданной в лаборатории DEV TEST, которая в моем случае не будет работать, поскольку наши виртуальные машины не созданы в отдельной лаборатории, которая пыталась объяснить выше. Поэтому я думаю, что скрипт не работает

Пытался заглянуть в несколько REST API, но также не смог найти там ничего.

1 Ответ

2 голосов
/ 01 июля 2019

Как вы заметили, доступ к этой функции на виртуальных машинах вне DevTest Labs официально не поддерживается.Существует доступная конечная точка для чтения и обновления расписания.Однако очень важно отметить, что в настоящее время это не официально поддерживаемая конечная точка, поэтому может измениться или прекратить работу в любое время .

Конечная точка: https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/schedules/shutdown-computevm-{vmName}?api-version=2018-10-15-preview

Если бы я вызывал эту конечную точку с помощью простого HttpClient в C #, он бы выглядел примерно так, как только я получил бы токен авторизации:

class Program
{
    private static string bearerToken = Configuration.Token;
    private static string subscriptionId = Configuration.SubscriptionId;
    private static string resourceGroupName = Configuration.ResourceGroup;
    private static string vmName = Configuration.VMName;

    static void Main(string[] args)
    {
        using(var client = new HttpClient())
        {
            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("bearer", bearerToken);

            var result = client.GetStringAsync(new Uri($"https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/schedules/shutdown-computevm-{vmName}?api-version=2018-10-15-preview")).Result;

            Console.WriteLine(result);
        }

        Console.ReadLine();
    }
}
...