code: func (ss *scaleSet) GetInstanceIDByNodeName(name string) (string, error) {
  	managedByAS, err := ss.isNodeManagedByAvailabilitySet(name)
  	if err != nil {
  		klog.Errorf("Failed to check isNodeManagedByAvailabilitySet: %v", err)
  		return "", err
  	}
  	if managedByAS {
  		// vm is managed by availability set.
  		return ss.availabilitySet.GetInstanceIDByNodeName(name)
  	}
  
  	_, _, vm, err := ss.getVmssVM(name)
  	if err != nil {
  		return "", err
  	}
  
  	resourceID := *vm.ID
  	convertedResourceID, err := convertResourceGroupNameToLower(resourceID)
  	if err != nil {
  		klog.Errorf("convertResourceGroupNameToLower failed with error: %v", err)
  		return "", err
  	}
  	return convertedResourceID, nil
  }
docs: // GetInstanceIDByNodeName gets the cloud provider ID by node name.
  // It must return ("", cloudprovider.InstanceNotFound) if the instance does
  // not exist or is no longer running.