class_docstr: Node Provider for Azure
  
  This provider assumes Azure credentials are set by running ``az login``
  and the default subscription is configured through ``az account``
  or set in the ``provider`` field of the autoscaler configuration.
  
  Nodes may be in one of three states: {pending, running, terminated}. Nodes
  appear immediately once started by ``create_node``, and transition
  immediately to terminated when ``terminate_node`` is called.
class_docstr_tok: ["Node","Provider","for","Azure","This","provider","assumes","Azure","credentials","are","set","by","running","``","az","login","``","and","the","default","subscription","is","configured","through","``","az","account","``","or","set","in","the","``","provider","``","field","of","the","autoscaler","configuration",".","Nodes","may","be","in","one","of","three","states",":","{","pending",",","running",",","terminated","}",".","Nodes","appear","immediately","once","started","by","``","create_node","``",",","and","transition","immediately","to","terminated","when","``","terminate_node","``","is","called","."]
docstr: Sets the tag values (string dict) for the specified node.
docstr_tok: ["Sets","the","tag","values","(","string","dict",")","for","the","specified","node","."]
code: def set_node_tags(self, node_id, tags):
      """Sets the tag values (string dict) for the specified node."""
      node_tags = self._get_cached_node(node_id)["tags"]
      node_tags.update(tags)
      update = get_azure_sdk_function(
          client=self.compute_client.virtual_machines,
          function_name="update",
      )
      update(
          resource_group_name=self.provider_config["resource_group"],
          vm_name=node_id,
          parameters={"tags": node_tags},
      )
      self.cached_nodes[node_id]["tags"] = node_tags
  
imports: import json
  import logging
  from pathlib import Path
  from threading import RLock
  from uuid import uuid4
  from azure.identity import DefaultAzureCredential
  from azure.mgmt.compute import ComputeManagementClient
  from azure.mgmt.network import NetworkManagementClient
  from azure.mgmt.resource import ResourceManagementClient
  from azure.mgmt.resource.resources.models import DeploymentMode
  from ray.autoscaler._private._azure.config import bootstrap_azure, get_azure_sdk_function
  from ray.autoscaler.node_provider import NodeProvider
  from ray.autoscaler.tags import TAG_RAY_CLUSTER_NAME, TAG_RAY_LAUNCH_CONFIG, TAG_RAY_NODE_KIND, TAG_RAY_NODE_NAME, TAG_RAY_USER_NODE_TYPE
label_desc: Use image node_id 13 for calling the AzureNodeProvider obj's underlying member method code with example usage: obj.set_node_tags(node_id, tags) without return types