python-3.x 无法从使用AWS Lambda的Cloudwatch中获取空间利用率指标的值

qnakjoqk  于 4个月前  发布在  Python
关注(0)|答案(1)|浏览(88)

我尝试在lambda函数的帮助下从Cloudwatch获取EC2示例的已用磁盘空间(百分比)。它没有返回任何值。
当我尝试指定文件夹和挂载路径时,它显示错误-
参数验证失败:\n MetricDataTable [0]中的未知参数。MetricStat.Metric.Dimensions[0]:\“Filesource",必须为以下值之一:Name,Value”,“errorType”:“ParamValidationError”
这里是完整的代码。

import boto3
import datetime

def lambda_handler(event, context):
   client = boto3.client('cloudwatch')
   response = client.get_metric_data(

       MetricDataQueries=[
           {
               'Id': 'd1',
               'MetricStat': {
                   'Metric': {
                       'Namespace': 'cloudwatch',
                       'MetricName': 'DiskSpaceUtilization',
                       'Dimensions': [
                           {
                               'Name': 'InstanceId',
                               'Value': '*****************',
                               'Filesystem': '/****/****'
                           },
                       ]
                   },
                   'Period': 300,
                   'Stat': 'Maximum',
                   'Unit': 'Percent'
               },
               'ReturnData': True
           },
       ],
       StartTime=datetime.datetime.utcnow() - datetime.timedelta(seconds=600),
       EndTime=datetime.datetime.utcnow(),
       ScanBy='TimestampDescending',
       MaxDatapoints=60

   )
   return response

字符串
我希望输出为“空间利用率- x%”。
但目前的产量是

"MetricDataResults": [
    {
      "Id": "d1",
      "Label": "DiskSpaceUtilization",
      "Timestamps": [],
      "Values": [],
      "StatusCode": "Complete"
    }
  ],

xghobddn

xghobddn1#

文件夹是一个单独的维度,请更改此设置:

'Dimensions': [
    {
        'Name': 'InstanceId',
        'Value': '*****************',
        'Filesystem': '/****/****'
    },
]

字符串
对此:

'Dimensions': [
    {
        'Name': 'InstanceId',
        'Value': '*****************'
    },
    {
        'Name': 'Filesystem',
        'Value': '/****/****'
    }
]


然后看看你得到了什么(在你修复这个问题后可能会有其他问题)。

相关问题