code: func (az *Cloud) SetInformers(informerFactory informers.SharedInformerFactory) {
  	klog.Infof("Setting up informers for Azure cloud provider")
  	nodeInformer := informerFactory.Core().V1().Nodes().Informer()
  	nodeInformer.AddEventHandler(cache.ResourceEventHandlerFuncs{
  		AddFunc: func(obj interface{}) {
  			node := obj.(*v1.Node)
  			az.updateNodeCaches(nil, node)
  		},
  		UpdateFunc: func(prev, obj interface{}) {
  			prevNode := prev.(*v1.Node)
  			newNode := obj.(*v1.Node)
  			if newNode.Labels[v1.LabelZoneFailureDomain] ==
  				prevNode.Labels[v1.LabelZoneFailureDomain] {
  				return
  			}
  			az.updateNodeCaches(prevNode, newNode)
  		},
  		DeleteFunc: func(obj interface{}) {
  			node, isNode := obj.(*v1.Node)
  			// We can get DeletedFinalStateUnknown instead of *v1.Node here
  			// and we need to handle that correctly.
  			if !isNode {
  				deletedState, ok := obj.(cache.DeletedFinalStateUnknown)
  				if !ok {
  					klog.Errorf("Received unexpected object: %v", obj)
  					return
  				}
  				node, ok = deletedState.Obj.(*v1.Node)
  				if !ok {
  					klog.Errorf("DeletedFinalStateUnknown contained non-Node object: %v", deletedState.Obj)
  					return
  				}
  			}
  			az.updateNodeCaches(node, nil)
  		},
  	})
  	az.nodeInformerSynced = nodeInformer.HasSynced
  }
docs: // SetInformers sets informers for Azure cloud provider.