def to_cloudformation(self, **kwargs):
        """Returns the Lambda function, role, and event resources to which this SAM Function corresponds.

        :param dict kwargs: already-converted resources that may need to be modified when converting this \
        macro to pure CloudFormation
        :returns: a list of vanilla CloudFormation Resources, to which this Function expands
        :rtype: list
        """
        resources = []
        intrinsics_resolver = kwargs["intrinsics_resolver"]

        if self.DeadLetterQueue:
            self._validate_dlq()

        lambda_function = self._construct_lambda_function()
        resources.append(lambda_function)

        lambda_alias = None
        if self.AutoPublishAlias:
            alias_name = self._get_resolved_alias_name("AutoPublishAlias", self.AutoPublishAlias, intrinsics_resolver)
            lambda_version = self._construct_version(lambda_function, intrinsics_resolver=intrinsics_resolver)
            lambda_alias = self._construct_alias(alias_name, lambda_function, lambda_version)
            resources.append(lambda_version)
            resources.append(lambda_alias)

        if self.DeploymentPreference:
            self._validate_deployment_preference_and_add_update_policy(kwargs.get('deployment_preference_collection',
                                                                                  None),
                                                                       lambda_alias, intrinsics_resolver)

        managed_policy_map = kwargs.get('managed_policy_map', {})
        if not managed_policy_map:
            raise Exception('Managed policy map is empty, but should not be.')

        execution_role = None
        if lambda_function.Role is None:
            execution_role = self._construct_role(managed_policy_map)
            lambda_function.Role = execution_role.get_runtime_attr('arn')
            resources.append(execution_role)

        try:
            resources += self._generate_event_resources(lambda_function, execution_role, kwargs['event_resources'],
                                                        lambda_alias=lambda_alias)
        except InvalidEventException as e:
            raise InvalidResourceException(self.logical_id, e.message)

        return resources
def to_cloudformation ( self , ** kwargs ) : resources = [ ] intrinsics_resolver = kwargs [ "intrinsics_resolver" ] if self . DeadLetterQueue : self . _validate_dlq ( ) lambda_function = self . _construct_lambda_function ( ) resources . append ( lambda_function ) lambda_alias = None if self . AutoPublishAlias : alias_name = self . _get_resolved_alias_name ( "AutoPublishAlias" , self . AutoPublishAlias , intrinsics_resolver ) lambda_version = self . _construct_version ( lambda_function , intrinsics_resolver = intrinsics_resolver ) lambda_alias = self . _construct_alias ( alias_name , lambda_function , lambda_version ) resources . append ( lambda_version ) resources . append ( lambda_alias ) if self . DeploymentPreference : self . _validate_deployment_preference_and_add_update_policy ( kwargs . get ( 'deployment_preference_collection' , None ) , lambda_alias , intrinsics_resolver ) managed_policy_map = kwargs . get ( 'managed_policy_map' , { } ) if not managed_policy_map : raise Exception ( 'Managed policy map is empty, but should not be.' ) execution_role = None if lambda_function . Role is None : execution_role = self . _construct_role ( managed_policy_map ) lambda_function . Role = execution_role . get_runtime_attr ( 'arn' ) resources . append ( execution_role ) try : resources += self . _generate_event_resources ( lambda_function , execution_role , kwargs [ 'event_resources' ] , lambda_alias = lambda_alias ) except InvalidEventException as e : raise InvalidResourceException ( self . logical_id , e . message ) return resources
Returns the Lambda function, role, and event resources to which this SAM Function corresponds.

        :param dict kwargs: already-converted resources that may need to be modified when converting this \
        macro to pure CloudFormation
        :returns: a list of vanilla CloudFormation Resources, to which this Function expands
        :rtype: list