def process(self, resources, event=None): # Import utcnow function as it may have been overridden for testing purposes from c7n_azure.actions import utcnow # Get timespan end_time = utcnow() start_time = end_time - timedelta(hours=self.timeframe) self.timespan = "{}/{}".format(start_time, end_time) # Create Azure Monitor client self.client = self.manager.get_client('azure.mgmt.monitor.MonitorManagementClient') # Process each resource in a separate thread, returning all that pass filter with self.executor_factory(max_workers=3) as w: processed = list(w.map(self.process_resource, resources)) return [item for item in processed if item is not None]