更新时间:2024-05-13 GMT+08:00
分享

灰度服务配置

本章介绍通过IaC进行灰度服务配置的管理,包括灰度规则的管理及灰度阶段切换。对应的资源类型为WiseCloud::LoadBalancer::GrayConfig。

表1 灰度服务类型说明

灰度路由引擎

对应ruleType

SLB(>1.3.11)

SLB

微服务

MicroService

DMQ

DMQ

分布式Job

Job

函数

Function

表2 灰度服务配置字段说明

参数名

是否必选

说明

ruleType

类型:SLB、MicroService、Job、DMQ、Function。

currentStage

当前阶段,>=1,<=sizeOf(Stages),默认为1。

currentStatus

当前状态,取值为Processing、Pause、Complete,默认为Complete。

functionName

RuleType为Function时必填,否则无效,长度<=200。

functionAliasName

RuleType为Function时必填,否则无效,长度<=255。

functionAliasName别名不能重复,一个别名只能有一条记录。

routeFlag

取值为Default/Special,默认为Default。

Stages

灰度阶段

表3 Stages字段说明

参数名

是否必选

说明

stageIndex

阶段编号,最好按照顺序填写1 , 2 , 3 , 4… ,缺省为0 ,后台会排序后,按顺序赋值为1.2.3.4….。

greyRuleRelation

取值为or或and

RouteType为SLB时必选,不为SLB时无效。

rules

RouteType为SLB时必选,不为SLB时无效。

groupRelation

取值为or或and

RouteType不为SLB时必选,为SLB时无效。

userExtendedParameter

RouteType为Job时有意义,非必选,不为job时无效,必须是json字符串格式。

groups

RouteType为非SLB时必选,为SLB时无效。

表4 rules字段说明

参数名

是否必选

说明

param

参数名variable为percent时可以为空,否则不能为空,长度<=50。

  • Position为header 时, [a-zA-Z0-9_\-]+
  • Position不为header且RuleType不为Function时, [.a-zA-Z0-9_\-]+
  • Position不为header且RuleType为Function时, [.a-zA-Z0-9_\-\[\]]+

variable

  • RuleType为SLB时,传输类型:"province", "city", "countryArea", "custom", "advance", "path","CLIENT-IP", "REAL-IP"
  • RuleType非SLB时,传输类型: "province", "city", "countryArea", "custom", "percent" , "CLIENT-IP", "REAL-IP"

position

位置

  • RuleType非SLB时,不传
  • variable为 "CLIENT-IP", "REAL-IP" 时,为 "NA"
  • variable为其他时,为"url", "body-json", "body-form", "header", "locale","resource", "localeCountryArea", "NA", "path", "percent"

match

匹配方法

  • RuleType为SLB时: "pattern", "sha256", "equal", "rangeIP", "locateIn", "tailEqual", "locateInCountryArea", "NA"
  • RuleType非SLB时: "pattern", "sha256", "equal", "rangeIP", "locateIn", "tailEqual", "locateInCountryArea", "NA" , "gt", "ge", "lt", "le", "notEqual", "percent"
  • variable为 "CLIENT-IP", "REAL-IP" 时,为 "sha256", "rangeIP"
  • variable为 " path " 时,为 "pattern", "equal"

values

匹配值列表,多个值逗号分隔

  • match为 "tailEqual" 时,每个长度小于4
  • match为 " rangeIP " 时,样例xx.xx.xx.x-xx.xx.xx.xx
表5 groups字段说明

参数名

是否必选

说明

groupIndex

建议按照顺序填写0,1,2,3,4…

不写默认从0开始排序,按顺序赋值为0,1,2,3,4….。

greyRuleRelation

取值为and或or

microServiceVersion

微服务版本号,MicroServiceVersion和useInstanceProperty二选一。

Function类型可以两个都不选,DMQ类型只支持版本号。

如果配置组之间关系为与,各个配置组的版本号相同。

长度<=50

useInstanceProperty

微服务自定义灰度参数,MicroServiceVersion和useInstanceProperty二选一。

Function类型可以两个都不选,DMQ类型只支持版本号。

长度<=50

rules

灰度规则列表

SLB类型样例:

- name: clf_iac3.0_example_gray_SLB            // name+type唯一定位到一个灰度服务资源
  type: 'WiseCloud::LoadBalancer::GrayConfig'  //资源类型为灰度服务配置
  properties:
    ruleType: SLB
    stages:
      - stageIndex: 1
        rules:
          - param: path
            values: '5555'
            match: equal
            variable: path
            position: path
        greyRuleRelation: or

微服务类型样例:

- name: clf_iac3.0_example_gray_MicroService
  type: 'WiseCloud::LoadBalancer::GrayConfig'
  properties:
    currentStatus: Processing
    ruleType: MicroService
    stages:
      - stageIndex: 1
        groupRelation: or
        groups:
          - microServiceVersion: latest
            rules:
              - param: aaa
                values: '111'
                match: equal
                variable: custom
            groupIndex: 1
            greyRuleRelation: or

DMQ类型样例:

- name: clf_iac3.0_example_gray_DMQ
  type: 'WiseCloud::LoadBalancer::GrayConfig'
  properties:
    ruleType: DMQ
    stages:
      - stageIndex: 1
        groupRelation: and
        groups:
          - microServiceVersion: gray_1
            rules:
              - param: aaa
                values: '2222'
                match: pattern
                variable: custom
              - param: bbb
                values: '1111'
                match: equal
                variable: custom
            groupIndex: 1
            greyRuleRelation: or

Job类型样例:

- name: clf_iac3.0_example_gray_Job
  type: 'WiseCloud::LoadBalancer::GrayConfig'
  properties:
    ruleType: Job
    stages:
      - stageIndex: 1
        groupRelation: or
        groups:
          - microServiceVersion: last
            rules:
              - param: ccc
                values: ccc
                match: equal
                variable: custom
                position: ''
            groupIndex: 1
            greyRuleRelation: or
      - stageIndex: 2
        groupRelation: or
        groups:
          - microServiceVersion: last
            rules:
              - param: ddd
                values: ddd
                match: tailEqual
                variable: custom
            groupIndex: 1
            greyRuleRelation: or

Function类型样例:

- name: clf_iac3.0_example_gray_Function
  type: 'WiseCloud::LoadBalancer::GrayConfig'
  properties:
    functionAliasName: >-
      wisefunction:222cn:iot:mcb1fbf087634f199f3a4251c5b8a91e:function:pyd:quanzhong2wisefunction:cn:iot:mcb1fbf087634f199f3a4251c5b8a91e:function:pyd:quanzhong2wisefunction:cn:iot:mcb1fbf087634f199f3a4251c5b8a91e:function:pyd:quanzhong2
    functionName: pyd
    ruleType: Function
    stages:
      - stageIndex: 1
        groupRelation: or
        groups:
          - rules:
              - param: appid
                values: '123456,22222'
                match: equal
                variable: custom
            groupIndex: 1
            greyRuleRelation: or

相关文档