我正在尝试使用python / boto3调用Lambda中的CloudWatch get_metric_data
API。根据{{3}},StartTime
和EndTimes
应该是我正在使用的日期时间类型。我对如何设置StartTime
和EndTime
字段的格式感到困惑。
我尝试使用int / string时间戳,还使用json.dumps(datetime(2019, 8, 29), default=str)
和datetime(2019, 8, 29).isoformat()
转换日期时间
import json
import boto3
from datetime import datetime
def lambda_handler(event, context):
client = boto3.client('cloudwatch', region_name = 'us-east-1')
metricData = client.get_metric_data(
MetricDataQueries=[
{
'Id': 'numberOfCalls',
'MetricStat': {
'Metric': {
'Namespace': 'AWS/Connect',
'MetricName': 'QueueSize',
'Dimensions': [
{
'Name': 'InstanceId',
'Value': 'a351243b-6844-41b0-97d9-934414342d87'
},
{
'Name': 'MetricGroup',
'Value': 'Queue'
},
{
'Name': 'QueueName',
'Value': 'MiWorkspace'
}
]
},
'Period': 300,
'Stat': 'Maximum',
'Unit': 'Count'
},
'Label': 'Retrieves the number of MiWorkspace calls in queue',
'ReturnData': True
},
],
StartTime=datetime(2019, 8, 29),
EndTime=datetime(2019, 8, 30),
ScanBy='TimestampAscending'
)
return metricData
"errorMessage": "Unable to marshal response: datetime.datetime(2019, 8, 29, 0, 0, tzinfo=tzlocal()) is not JSON serializable",
"errorType": "Runtime.MarshalError"