code: def get_persistent_address(instance):
      
      if instance.cloud == 'aws':
          client = boto3.client('ec2', instance.region)
          try:
              client.describe_addresses(PublicIps=[instance.ip_address])
              return instance.ip_address
          except botocore.client.ClientError as exc:
              if exc.response.get('Error', {}).get('Code') != 'InvalidAddress.NotFound':
                  raise
              # Address is not public
              return None
      if instance.cloud == 'gcp':
          credentials = GoogleCredentials.get_application_default()
          compute = discovery.build('compute', 'v1', credentials=credentials)
          try:
              return compute.addresses().get(address=instance.name, project=instance.project, region=instance.region).execute()['address']
          except errors.HttpError as exc:
              if 'was not found' in str(exc):
                  return None
              raise
      raise ValueError('Unknown cloud %s' % instance.cloud)
docs: Returns the public ip address of an instance.