code: def _update_route(dcidr, router_ip, old_router_ip,
                    vpc_info, con, route_table_id, update_reason):
      
      instance = eni = None
      try:
          instance, eni = find_instance_and_eni_by_ip(vpc_info, router_ip)
  
          logging.info("--- updating existing route in RT '%s' "
                       "%s -> %s (%s, %s) (old IP: %s, reason: %s)" %
                       (route_table_id, dcidr, router_ip,
                        instance.id, eni.id, old_router_ip, update_reason))
          try:
              con.replace_route(
                          route_table_id         = route_table_id,
                          destination_cidr_block = dcidr,
                          instance_id            = instance.id,
                          interface_id           = eni.id)
          except Exception as e:
              raise Exception("replace_route failed: %s" % str(e))
  
          CURRENT_STATE.routes[dcidr] = \
                                      (router_ip, str(instance.id), str(eni.id))
      except Exception as e:
          msg = "*** failed to update route in RT '%s' %s -> %s (%s)" % \
                (route_table_id, dcidr, old_router_ip, e.message)
          update_reason += " [ERROR update route: %s]" % e.message
          logging.error(msg)
  
      _rt_state_update(route_table_id, dcidr, router_ip,
                       instance.id if instance else "(none)",
                       eni.id if eni else "(none)",
                       old_router_ip, update_reason)
docs: Update an existing route entry in the route table.