code: def ec2_elasticip_elasticip_ipaddress(self, lookup, default=None):
      
      # Extract environment from resource ID to build stack name
      m = re.search('ElasticIp([A-Z]?[a-z]+[0-9]?)\w+', lookup)
      # The lookup string was not a valid ElasticIp resource label
      if m is None:
        return default
      env = m.group(1)
      stackname = "{}-elasticip".format(env.lower())
      # Convert env substring to title in case {{ENV}} substitution is being used
      lookup = lookup.replace(env, env.title())
      # Look up the EIP resource in the stack to get the IP address assigned to the EIP
      try:
        eip_stack = EFAwsResolver.__CLIENTS["cloudformation"].describe_stack_resources(
          StackName=stackname,
          LogicalResourceId=lookup
        )
      except ClientError:
        return default
      stack_resources = eip_stack["StackResources"]
      # Resource does not exist in stack
      if len(stack_resources) < 1:
        return default
      eip_publicip = stack_resources[0]["PhysicalResourceId"]
      return eip_publicip
docs: Args:
        lookup: the CloudFormation resource name of the Elastic IP address to look up
        default: the optional value to return if lookup failed; returns None if not set
      Returns:
        The IP address of the first Elastic IP found with a description matching 'lookup' or default/None if no match