在PowerShell上使用AWS CLI时数据点为空 [英] Data points are empty on using AWS cli on powershell
本文介绍了在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屋!
查看全文