jizhuozhi commented on code in PR #12448:
URL: https://github.com/apache/apisix/pull/12448#discussion_r2442277792


##########
docs/en/latest/discovery/consul.md:
##########
@@ -232,6 +232,61 @@ $ curl http://127.0.0.1:9180/apisix/admin/stream_routes/1 
-H "X-API-KEY: $admin_
 }'
 ```
 
+### discovery_args
+
+| Name           | Type   | Requirement | Default | Valid | Description        
                                          |
+|----------------| ------ | ----------- | ------- | ----- | 
------------------------------------------------------------ |
+| metadata_match | object | optional    | {}      |       | Filter service 
instances by metadata using containment matching |
+
+#### Metadata filtering
+
+APISIX supports filtering service instances based on metadata. When a route is 
configured with metadata conditions, only service instances whose metadata 
matched with roles specified in the route's `metadata_match` configuration will 
be selected.
+
+Example: If a service instance has metadata `{lane: "a", env: "prod", version: 
"1.0"}`, it will match routes configured with metadata `{lane: ["a"]}` or 
`{lane: ["a", "b"], env: "prod"}`, but not routes configured with `{lane: 
["c"]}` or `{lane: "a", region: "us"}`.
+
+Example of routing a request with metadata filtering:
+
+```shell
+$ curl http://127.0.0.1:9180/apisix/admin/routes/5 -H "X-API-KEY: $admin_key" 
-X PUT -i -d '
+{
+    "uri": "/consulWithMetadata/*",
+    "upstream": {
+        "service_name": "APISIX-CONSUL",
+        "type": "roundrobin",
+        "discovery_type": "consul",
+        "discovery_args": {
+          "metadata_match": {
+            "version": ["v1", "v2"]

Review Comment:
   And as the dimensions increase, I have to define multiple routes by 
cross-product to achieve the functions originally implemented using arrays.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to