code: func (az *Cloud) getVirtualMachine(nodeName types.NodeName) (vm compute.VirtualMachine, err error) {
  	vmName := string(nodeName)
  	cachedVM, err := az.vmCache.Get(vmName)
  	if err != nil {
  		return vm, err
  	}
  
  	if cachedVM == nil {
  		return vm, cloudprovider.InstanceNotFound
  	}
  
  	return *(cachedVM.(*compute.VirtualMachine)), nil
  }
docs: /// getVirtualMachine calls 'VirtualMachinesClient.Get' with a timed cache
  /// The service side has throttling control that delays responses if there're multiple requests onto certain vm
  /// resource request in short period.