как определить amazon-cloudwatch boto3.client в пользовательских функциях python - PullRequest
0 голосов
/ 29 декабря 2018

Я работаю над сценарием Python 3, предназначенным для получения статистики использования пространства S3 из AWS CloudFront с использованием библиотеки Boto3.

Я начал с интерфейса командной строки AWS и обнаружил, что могу получить то, что мне нужно, с помощьюкоманда, подобная этой:

aws cloudwatch get-metric-statistics --metric-name BucketSizeBytes --namespace AWS/S3 --start-time 2017-03-06T00:00:00Z --end-time 2017-03-07T00:00:00Z --statistics Average --unit Bytes --r


from datetime import datetime, timedelta
import boto3

seconds_in_one_day = 86400  # used for granularity

cloudwatch = boto3.client('cloudwatch')

response = cloudwatch.get_metric_statistics(
    Namespace='AWS/S3',
    Dimensions=[
        {
            'Name': 'BucketName',
            'Value': 'foo-bar'
        },
        {
            'Name': 'StorageType',
            'Value': 'StandardStorage'
        }
    ],
    MetricName='BucketSizeBytes',
    StartTime=datetime.now() - timedelta(days=7),
    EndTime=datetime.now(),
    Period=seconds_in_one_day,
    Statistics=[
        'Average'
    ],
    Unit='Bytes'
)

print(response)

Если я выполняю приведенный выше код, он возвращает вывод json, но я хочу определить функцию из cloudwatch для всего кода подопечного ... и сделать ее параметризованной, но проблема заключается в том, когда яопределить функцию

Возвращает.Код ошибки, говорящий, что переменная ответа не определена ...

Просьба предложить, как использовать это в функции

...