import datetime from aws.base import Base class Function(Base): def __init__(self, client, func): super().__init__(client) self.name = func.get("FunctionName") self.arn = func.get("FunctionArn") self.runtime = func.get("Runtime") def get_number_of_invocations(self, client) -> float: today = datetime.datetime.today() end = today.replace(day=1) start = end - datetime.timedelta(days=30) responce = client.get_metric_statistics( Namespace='AWS/Lambda', MetricName='Invocations', Dimensions=[ { 'Name': 'FunctionName', 'Value': self.name }, ], Statistics=['Sum'], Unit='Count', StartTime=start, EndTime=end, Period=86400 * 30 # 30 days ) datapoints = responce.get('Datapoints', []) if len(datapoints) == 0: return 0 return datapoints[0].get('Sum', 0)