在PowerShell上使用AWS CLI时数据点为空 [英] Data points are empty on using AWS cli on powershell

查看:21
本文介绍了在PowerShell上使用AWS CLI时数据点为空的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用PowerShell获取EC2实例的统计信息。在运行时,我只是得到了空的数据点。有什么解决方案吗?

代码如下:

Get-CWMetricStatistics -MetricName CPUUtilization 
                    -Dimension @{Name = "InstanceId"; Value = "08b290d4ab98f79c3"} 
                    -StartTime (Get-Date).AddDays(-1) 
                    -EndTime (Get-Date) 
                    -Namespace "AWS/EC2" 
                    -Period 60 
                    -Statistic Average

输出:

Datapoints Label         
---------- -----
{}         CPUUtilization

推荐答案

要回答问题:

空数据点输出可能会因许多原因而返回,但通常意味着在CloudWatch中没有给定输入的数据。请确保您的输入正确,并且存在给定时间段的数据。

我能够在以下场景中复制空数据点,让您了解这如何产生空结果:

  • 更改了我的InstanceId上的一个字母,使其与我的任何实例都不匹配;这不是错误,只是生成空的数据集。
  • 将时间范围更改为实例处于运行状态之前。
  • 在PowerShell中使用了不正确的权限,因此我使用的配置文件没有权限查看我请求的实例。

无论如何,您的语法是有效的。我在我自己的一个实例上测试了您的cmdlet,它工作得很好。一旦您的示例运行起来,您就可以通过管道传输结果集合并解析它们来获得原始数据点。例如,假设cmdlet的输出为$datapoints

$datapoints | % { $_.Datapoints.Average }

回答评论:

语法-Dimension @{Name = "InstanceId"; Value = "08b290d4ab98f79c3"}对此cmdlet有效。它看起来很奇怪,因为Get-CWMetricStatistics cmdlet希望您传入AWS.CloudWatch.Model.Dimension对象的集合。

在此示例中,具有匹配属性名称(名称和值)的哈希表就足够了,但给定的示例@{'InstanceId'='08b290d4ab98f79c3'}不能,因为AWS.CloudWatch.Model.Dimension上没有‘InstanceId’参数。

实际上,运行该命令会返回以下错误:

Get-CWMetricStatistics:无法绑定参数‘Dimension’。不能 创建类型为的对象 "Amazon.CloudWatch.Model.Dimension"。找不到Amazon.CloudWatch.Model.Dimension的InstanceId属性 对象。可用的属性为:[名称],[值]

然后还要考虑传递哈希表集合是此cmdlet的有效输入:

-Dimension @(@{Name = "InstanceId"; Value = "i-abcd1234"},@{Name = "InstanceId"; Value = "i-efgh5678"})

进一步阅读:

AWS PowerShell Documentation - Get-CWMetricStatistics

这篇关于在PowerShell上使用AWS CLI时数据点为空的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆