code: func (g *Cloud) InstanceID(ctx context.Context, nodeName types.NodeName) (string, error) {
  	instanceName := mapNodeNameToInstanceName(nodeName)
  	if g.useMetadataServer {
  		// Use metadata, if possible, to fetch ID. See issue #12000
  		if g.isCurrentInstance(instanceName) {
  			projectID, zone, err := getProjectAndZone()
  			if err == nil {
  				return projectID + "/" + zone + "/" + canonicalizeInstanceName(instanceName), nil
  			}
  		}
  	}
  	instance, err := g.getInstanceByName(instanceName)
  	if err != nil {
  		return "", err
  	}
  	return g.projectID + "/" + instance.Zone + "/" + instance.Name, nil
  }
docs: // InstanceID returns the cloud provider ID of the node with the specified NodeName.