nice feature, +1 On Mon, Sep 14, 2020 at 11:54 AM Ming Wen <[email protected]> wrote:
> cool, +1 > > Thanks, > Ming Wen, Apache APISIX & Apache SkyWalking > Twitter: _WenMing > > > wei jin <[email protected]> 于2020年9月14日周一 上午11:16写道: > > > yes, APISIX implement all feature in route object now, I think it is > also > > useful to implement in a plugin , and they can be combined to use > together. > > > > Ming Wen <[email protected]> 于2020年9月14日周一 上午9:17写道: > > > > > Hi, wei jin, > > > Do you mean to implement routing matching and dynamically modifying > > > upstream in the plugin? > > > Both of them are implemented in the router object now. > > > So the canary release is now bound to the router. It would be better if > > > there is a separate plugin to implement it. > > > > > > Thanks, > > > Ming Wen, Apache APISIX & Apache SkyWalking > > > Twitter: _WenMing > > > > > > > > > wei jin <[email protected]> 于2020年9月12日周六 下午4:51写道: > > > > > > > As we know , APISIX can configure and distribute traffic through > > powerful > > > > routing strategies. With this capability, we can achieve grayscale > > > > publishing. > > > > > > > > After the route is determined, we can again control the traffic to > the > > > > specified upstream through a plug-in, but it needs to be customized. > I > > > > propose that the community implement a version of the gray plug-in > that > > > > provides the following functions: > > > > > > > > 1. Specify matching conditions (for example, kv pairs of http > > > querystring, > > > > header and other parameters) > > > > 2. When a certain matching condition is met, specify upstream; > > > > 3. Specify the condition matching priority; > > > > > > > > Definition example: > > > > > > > > ```javascript > > > > { > > > > "grayscale":{ > > > > "rules": [ > > > > { > > > > "condition": [ > > > > { > > > > "use": "header", // enum: uri_args/header/path_reg/default > > > > "key": "user_id", > > > > "values": [ > > > > "U1", > > > > "U2", > > > > "U3" > > > > ], > > > > "operator": "anyOf" // enum: oneOf/anyOf/prefix/regular/... > > > > }, > > > > ... > > > > ], > > > > "upstream": {},// upstream or upstreamId > > > > "priority": 10 // 0~100 The larger the value, the higher the priority > > > > }, > > > > { > > > > "condition": [ > > > > { > > > > "use": "header", // enum: uri_args/header/path_reg/default > > > > "key": "appkey", > > > > "values": [ > > > > "dfaef-xfdafe-xj1kl3-1-jhilh1", > > > > "dfaef-xfdafe-xj1kl3-2-jhilh1", > > > > "dfaef-xfdafe-xj1kl3-3-jhilh1" > > > > ], > > > > "operator": "anyOf" // enum: oneOf/anyOf/prefix/regular/... > > > > }, > > > > ... > > > > ], > > > > "upstream": {},// upstream or upstreamId > > > > "priority": 10 // 0~100 The larger the value, the higher the priority > > > > } > > > > ... > > > > ] > > > > } > > > > } > > > > ``` > > > > > > > > > > -- *MembPhis* My GitHub: https://github.com/membphis Apache APISIX: https://github.com/apache/incubator-apisix
