如何使用C#fetch,更新或切换或操纵Azure Portal中选定的Azure VM的自动检查参数



我正在尝试使用C#从Azure Portal中进行编程使用C#为所选VM获取自动检查参数的详细信息。我要实现的目标如下:

  1. 首先,获取启用或禁用的自动关闭状态?
  2. 如果已启用,请获得自动关闭时间及其时区相关信息
  3. 基于输入更新时区和时间或禁用自动关闭状态的基础

我希望通过C#程序完成此操作。

我不知道如何通过谷歌搜索来实现它。请提供详细的逐步指南,当我是我的编码,C#和Azure

的新手时如何实现它。

请注意,我们的项目中的VM并未在任何DevTest实验室中创建,这些实验室是直接通过LCS和Demo Env创建的。

您可以提供以上几点考虑的详细信息吗?否则这是不可能的,因为步骤不正确?

请让我知道,如果从我的尽头需要其他任何信息才能为我提供解决方案。

我已经研究了下面的powershell脚本:

如何使用PowerShell收集Azure VM自动驶入时间?

,但这似乎涉及开发测试实验室中创建的VM,在我的情况下,该VM无法使用,因为我们的VM并未在单独的实验室中尝试解释上述解释。因此,我认为脚本不起作用

试图研究一些REST API,但在那里找不到任何东西。

正如您已经注意到的那样,在DevTest Labs之外的VMS中访问此功能并未正式支持。有一个可用的终点用于阅读和更新时间表。但是,非常重要的是要注意,这不是当前正式支持的端点,因此它可能会在任何时候更改或停止工作

端点是: https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DevTestLab/schedules/shutdown-computevm-{vmName}?api-version=2018-10-15-preview

如果我使用C#中的简单httpclient调用此端点,一旦我获得了授权令牌,它将看起来像这样的东西:

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();
    }
}

最新更新