code: func (az *Cloud) CreateOrUpdateLB(service *v1.Service, lb network.LoadBalancer) error {
  	if az.Config.shouldOmitCloudProviderBackoff() {
  		ctx, cancel := getContextWithCancel()
  		defer cancel()
  
  		resp, err := az.LoadBalancerClient.CreateOrUpdate(ctx, az.ResourceGroup, *lb.Name, lb)
  		klog.V(10).Infof("LoadBalancerClient.CreateOrUpdate(%s): end", *lb.Name)
  		if err == nil {
  			if isSuccessHTTPResponse(resp) {
  				// Invalidate the cache right after updating
  				az.lbCache.Delete(*lb.Name)
  			} else if resp != nil {
  				return fmt.Errorf("HTTP response %q", resp.Status)
  			}
  		}
  		return err
  	}
  
  	return az.createOrUpdateLBWithRetry(service, lb)
  }
docs: // CreateOrUpdateLB invokes az.LoadBalancerClient.CreateOrUpdate with exponential backoff retry