def put_item()

in source/state_machine_handler.py [0:0]


    def put_item(self):
        try:
            self.logger.info("Executing: " + self.__class__.__name__ + "/" + inspect.stack()[0][3])
            ddb = DDB(self.logger, environ.get('TABLE_NAME'))

            item = {
                "SubnetId": self.is_none(self.event.get('SubnetId')),
                "Version": self.is_none(str(self.event.get('detail', {}).get('version'))),
                "AvailabilityZone": self.is_none(self.event.get('AvailabilityZone')),
                "VpcId": self.is_none(self.event.get('VpcId')),
                "TgwId": self.is_none(environ.get('TGW_ID')),
                "PropagationRouteTables": self.event.get(environ.get('PROPAGATION_TAG')),
                "PropagationRouteTablesString": 'None' if self.event.get(environ.get('PROPAGATION_TAG')) is None else ','.join(self.event.get(environ.get('PROPAGATION_TAG'))),
                "TagEventSource": self.is_none(self.event.get('TagEventSource')),
                "VpcCidr": self.is_none(self.event.get('VpcCidr')),
                "Action": self.is_none(self.event.get('Action')),
                "Status": self.is_none(self.event.get('Status')),
                "AWSSpokeAccountId": self.is_none(self.event.get('account')),
                "UserId": "StateMachine" if self.event.get('UserId') is None else self.event.get('UserId'),
                "AssociationRouteTable": self.event.get(environ.get('ASSOCIATION_TAG')),
                "RequestTimeStamp": self.event.get('time'),
                "ResponseTimeStamp": current_time() if self.event.get(
                    'GraphQLTimeStamp') is None else self.event.get('GraphQLTimeStamp'),
                "TimeToLive": self._get_time_to_live(self.event.get('time')),
                "Comment": self.is_none(self.event.get('Comment'))
            }

            self.logger.info(item)
            # add item to the DDB table with version in event
            ddb.put_item(item)

            item.update({'Version': 'latest'})
            ddb.put_item(item)

            # send anonymous metrics
            gf = GeneralFunctions(self.event, self.logger)
            gf.send_anonymous_data()

            return self.event
        except Exception as e:
            message = {'FILE': __file__.split('/')[-1], 'CLASS': self.__class__.__name__,
                       'METHOD': inspect.stack()[0][3], 'EXCEPTION': str(e)}
            self.logger.exception(message)
            raise