[img]https:// i.sstatic.net/M640unSp.png[/img]
Но дело в том, что мне нужно получить эти данные программно, чтобы передать их в своего рода конвейер ETL, который сгенерирует отчет. с определенным форматом. Я придумал следующий скрипт для получения этих данных:
Код: Выделить всё
import datetime
import boto3
client = boto3.client("cloudwatch", region_name="eu-west-1")
from_date = datetime.date.today()
month_ago = from_date - datetime.timedelta(days=30)
response = client.get_metric_data(
MetricDataQueries=[{
"Id": "test",
"MetricStat": {
"Metric": {
"Namespace": "AWS/Lambda",
"MetricName": "Invocations",
"Dimensions": [{
"Name": "STAGE",
"Value": "production"
}]
},
"Period": 86400,
"Stat": "Sum"
},
"ReturnData": True,
}],
StartTime=month_ago.strftime("%Y-%m-%dT00:00:00Z"),
EndTime=from_date.strftime("%Y-%m-%dT00:00:00Z")
)
И пытаюсь выполнить следующее выражение "SELECT SUM(Вызовы) FROM SCHEMA(\"AWS/Lambda\") WHERE \"STAGE\" = 'production' GROUP BY FunctionName" вместо dict MetricStat вызывает исключение MaxQueryTimeRangeExceed, поскольку мы разрешено ВЫБРАТЬ данные только за последние 3 часа.
Как мне правильно построить запрос, чтобы получить те же данные с теми же фильтрами, что и я делать в консоли AWS в этом случае? Заранее спасибо!
Подробнее здесь: https://stackoverflow.com/questions/792 ... with-boto3
Мобильная версия