Как получить информацию об элементах внутри метрик Cloudwatch? - PullRequest
1 голос
/ 05 мая 2020

Я создал таблицу в cloudwatch и хотел бы вставить новый элемент, только если все те же три поля не были вставлены за последний час. Вот текущий статус моей таблицы: Текущий статус метрики c

Я вставил информацию, используя Python и API put_metric_data:

cloudwatch = boto3.client('cloudwatch')
    response = cloudwatch.put_metric_data(
            MetricData=[
                {
                    'MetricName': 'Counter',
                    'Dimensions': [
                        {
                            'Name': 'Name',
                            'Value': "Bob"
                        },
                        {
                            'Name': 'accountId',
                            'Value': "222"
                        },
                        {
                            'Name': 'Pet',
                            'Value': "Cat"
                        },
                    ],
                    'Unit': 'Count',
                    'Value': 1
                },
            ],
            Namespace='Test_table'
        )

Как только появляется новая запись, я пытаюсь проверить, была ли она уже вставлена ​​за последние 60 минут, используя get_metric_data, но пока безуспешно:

response = cloudwatch.get_metric_data(
     MetricDataQueries=[
         {
             "Id": "my_id",
             "MetricStat": {
                 "Metric": {
                     "Namespace": "Test_table",
                     "MetricName": "Counter",
                     "Dimensions": [
                         {
                             "Name": "Name",
                             "Value": "first_name"
                         },
                         {
                             "Name": "accountId",
                             "Value": "Bank_id"
                         },
                         {
                             "Name": "Pet",
                             "Value": "Pet_type"
                         }
                     ]
                 },
                 "Period": 300,
                 "Stat": "Sum",
                 "Unit": "None"
             },
         },
     ],
     StartTime=datetime.datetime.now() - datetime.timedelta(hours=24),
     EndTime=datetime.datetime.now(),
 )

Что я здесь делаю не так? Есть ли более эффективный способ сделать это?

1 Ответ

0 голосов
/ 05 мая 2020

Похоже на несоответствие единиц измерения, вы публикуете Count, но запрашиваете None.

...