def process(self, resources, event=None): params = dict(FunctionName=self.data['function']) if self.data.get('qualifier'): params['Qualifier'] = self.data['Qualifier'] if self.data.get('async', True): params['InvocationType'] = 'Event' config = Config(read_timeout=self.data.get( 'timeout', 90), region_name=self.data.get('region', None)) client = utils.local_session( self.manager.session_factory).client('lambda', config=config) alias = utils.get_account_alias_from_sts( utils.local_session(self.manager.session_factory)) payload = { 'version': VERSION, 'event': event, 'account_id': self.manager.config.account_id, 'account': alias, 'region': self.manager.config.region, 'action': self.data, 'policy': self.manager.data} results = [] for resource_set in utils.chunks(resources, self.data.get('batch_size', 250)): payload['resources'] = resource_set params['Payload'] = utils.dumps(payload) result = client.invoke(**params) result['Payload'] = result['Payload'].read() if isinstance(result['Payload'], bytes): result['Payload'] = result['Payload'].decode('utf-8') results.append(result) return results
def process(self, resources, event=None): alias = utils.get_account_alias_from_sts( utils.local_session(self.manager.session_factory)) message = { 'event': event, 'account_id': self.manager.config.account_id, 'account': alias, 'region': self.manager.config.region, 'policy': self.manager.data} message['action'] = self.expand_variables(message) for batch in utils.chunks(resources, self.batch_size): message['resources'] = batch receipt = self.send_data_message(message) self.log.info("sent message:%s policy:%s template:%s count:%s" % ( receipt, self.manager.data['name'], self.data.get('template', 'default'), len(batch)))
def process(self, resources, event=None): alias = utils.get_account_alias_from_sts( utils.local_session(self.manager.session_factory)) message = { 'event': event, 'account_id': self.manager.config.account_id, 'account': alias, 'region': self.manager.config.region, 'policy': self.manager.data} message['action'] = self.expand_variables(message) for batch in utils.chunks(resources, self.batch_size): message['resources'] = batch receipt = self.send_data_message(message) self.log.info("sent message:%s policy:%s template:%s count:%s" % ( receipt, self.manager.data['name'], self.data.get('template', 'default'), len(batch)))