【问题标题】:Azure API - how to find out if a VM is running or deallocatedAzure API - 如何确定 VM 是否正在运行或已解除分配
【发布时间】:2020-05-22 17:30:50
【问题描述】:

我正在尝试在日历上生成使用情况报告,而缺少的指标是运行/停止 VS 释放时间。

查看 API 文档,似乎没有一种直接的方法可以从 vm api 或成本管理中获取此信息。

关于如何获得此指标的任何建议?

【问题讨论】:

    标签: azure azure-virtual-machine azure-resource-manager azure-rest-api azure-vm


    【解决方案1】:

    Powershell。查找 PowerState 状态。

    Get-AzVM -Status
    

    C#

    ResourceId vmResourceId = ResourceId.FromString(vmResourceId);
    var authenticated = Azure.Configure().Authenticate(Common.Credentials);
    vmInner = await authenticated.WithSubscription(vmResourceId.SubscriptionId).VirtualMachines.Inner.GetAsync(vmResourceId.ResourceGroupName, vmResourceId.Name, InstanceViewTypes.InstanceView);
    PowerState = vmInner.InstanceView.Statuses.Where(i => i.Code.Contains("PowerState")).FirstOrDefault()?.DisplayStatus;
    

    API - https://docs.microsoft.com/en-us/rest/api/compute/virtualmachines/instanceview。查找 code = "PowerState/running" 的状态数组。

    GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}/instanceView?api-version=2019-07-01
    

    【讨论】:

    • 一个更有用的提示。如果您知道如何在 Powershell 中执行某些操作,只需添加 -Debug 开关(或设置 $debugpreference='continue'),您就会看到底层 REST API。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-06
    • 1970-01-01
    相关资源
    最近更新 更多