code: func (p *AWSSDProvider) RegisterInstance(service *sd.Service, ep *endpoint.Endpoint) error {
  	for _, target := range ep.Targets {
  		log.Infof("Registering a new instance \"%s\" for service \"%s\" (%s)", target, *service.Name, *service.Id)
  
  		attr := make(map[string]*string)
  
  		if ep.RecordType == endpoint.RecordTypeCNAME {
  			if p.isAWSLoadBalancer(target) {
  				attr[sdInstanceAttrAlias] = aws.String(target)
  			} else {
  				attr[sdInstanceAttrCname] = aws.String(target)
  			}
  		} else if ep.RecordType == endpoint.RecordTypeA {
  			attr[sdInstanceAttrIPV4] = aws.String(target)
  		} else {
  			return fmt.Errorf("invalid endpoint type (%v)", ep)
  		}
  
  		if !p.dryRun {
  			_, err := p.client.RegisterInstance(&sd.RegisterInstanceInput{
  				ServiceId:  service.Id,
  				Attributes: attr,
  				InstanceId: aws.String(p.targetToInstanceID(target)),
  			})
  			if err != nil {
  				return err
  			}
  		}
  	}
  
  	return nil
  }
docs: // RegisterInstance creates a new instance in given service.