code: def _get_function_name_from_arn(function_arn):
          
  
          if not function_arn:
              return None
  
          matches = re.match(LambdaUri._REGEX_GET_FUNCTION_NAME, function_arn)
          if not matches or not matches.groups():
              LOG.debug("No Lambda function ARN defined for integration containing ARN %s", function_arn)
              return None
  
          groups = matches.groups()
          maybe_function_name = groups[0]  # This regex has only one group match
  
          # Function name could be a real name or a stage variable or some unknown format
          if re.match(LambdaUri._REGEX_STAGE_VARIABLE, maybe_function_name):
              # yes, this is a stage variable
              LOG.debug("Stage variables are not supported. Ignoring integration with function ARN %s", function_arn)
              return None
  
          elif re.match(LambdaUri._REGEX_VALID_FUNCTION_NAME, maybe_function_name):
              # Yes, this is a real function name
              return maybe_function_name
  
          # Some unknown format
          LOG.debug("Ignoring integration ARN. Unable to parse Function Name from function arn %s",
                    function_arn)
docs: Given the integration ARN, extract the Lambda function name from the ARN. If there
          are stage variables, or other unsupported formats, this function will return None.
  
          Parameters
          ----------
          function_arn : basestring or None
              Function ARN from the swagger document
  
          Returns
          -------
          basestring or None
              Function name of this integration. None if the ARN is not parsable