Application Delivery Management

参数

此部分允许您定义 StyleBook 中所需的所有参数,以创建配置。它描述了 StyleBook 接受的输入。尽管此部分是可选的,但大多数 StyleBook 可能都需要它。您可以将参数部分视为定义字段,供使用 StyleBook 在 NetScaler 实例上创建配置的用户使用。

当您将 StyleBook 导入 NetScaler® ADM 并使用它创建配置时,GUI 会使用 StyleBook 的此部分来显示一个表单。此表单接受定义的参数值作为输入。

以下部分描述了您需要在此部分中为每个参数指定的属性:

‘name’

您要定义的参数的名称。您可以指定一个字母数字名称。

名称必须以字母开头,并且可以包含更多字母、数字、连字符 (-) 或下划线 (_)。

在编写 StyleBook 时,您可以使用此 “name” 属性,通过 $parameters.\<name> 符号在其他部分中引用该参数。

强制?是

‘label’

在 ADM GUI 中显示为此参数名称的字符串。

强制?否

‘description’

一个帮助字符串,描述此参数的用途。当用户单击此参数的帮助图标时,ADM GUI 会显示此文本。

强制?否

‘type’

这些参数可以采用的值类型。参数可以是以下任何内置类型:

  • string:一个字符数组。如果未指定长度,则字符串值可以采用任意数量的字符。但是,您可以使用 min-length 和 max-length 属性来限制字符串类型的长度。

  • number:一个整数。您可以使用 min-value 和 max-value 属性来指定此类型可以采用的最小值和最大值。

  • boolean:可以是 true 或 false。YAML 将所有字面量视为布尔值(例如,Yes 或 No)。

  • ipaddress:表示有效 IPv4 或 IPv6 地址的字符串。

  • ipnetwork:它包含两部分。第一部分是 IP 地址,第二部分是网络掩码。

    IP 网络

    网络掩码由网络掩码长度 (netmask-len) 或网络掩码 IP 地址 (netmask_ip) 组成。网络掩码长度是一个介于 0-32 之间的整数,对于 IPv6 地址,则为 0–128。它用于确定网络中的 IP 地址数量。

    从 NetScaler ADM GUI 创建或更新配置包时,您可以执行以下操作之一:

    • 启用网络掩码长度并输入 IP 地址和网络掩码长度
    • 禁用网络掩码长度并输入 IP 地址和网络掩码 IP 地址

    在 API 中,网络掩码长度和网络掩码 IP 地址作为单个值提供,如以下示例所示:

    示例:

     Content-Type: application/json
     Accept: application/json
     {
     “configpack”:
     {
           “stylebook”: {
           “namespace”: “com.example.stylebook”,
           “version”:“1.0”,
           “name”: “ipnetwork-example”,
           ..
           },
           “parameters”: {
              “name: “test-app”,
               “virtual-ip”: “212.100.30.0/255.255.255.0”,
           },
           “targets”:
           [
           ]
     }
     }
     <!--NeedCopy-->
    
  • tcp-port:一个介于 0 到 65535 之间的数字,表示 TCP 或 UDP 端口。

  • password:表示不透明/秘密字符串值。当 ADM GUI 显示此参数的值时,它会显示为星号 (*****)。

  • certfile:表示证书文件。当您使用 ADM GUI 创建 StyleBook 配置时,此值允许您直接从本地系统上传文件。上传的证书文件存储在 ADM 中的 /var/mps/tenants/\<tenant_path>/ns_ssl_certs 目录中。

    证书文件将添加到 ADM 管理的证书列表中。

  • keyfile:表示证书密钥文件。当您使用 ADM GUI 创建 StyleBook 配置时,此值允许您直接从本地系统上传文件。上传的证书文件存储在 ADM 中的 /var/mps/tenants/\<tenant_path>/ns_ssl_keys 目录中。

    证书密钥文件将添加到 ADM 管理的证书密钥列表中。

  • file:表示一个文件。

  • object:当您希望将几个相关参数分组到父元素下时,使用此类型。将父参数的类型指定为 “object”。类型为 “object” 的参数可以包含嵌套的 “parameters” 部分来描述它所包含的参数。

  • another StyleBook:当您使用此类型的参数时,此参数期望其值采用 StyleBook 中定义的参数形式,以表示其类型。

参数还可以具有 type,即类型列表。为此,请在类型末尾添加 []。例如,如果 type 属性是 string[],则此参数接受字符串列表作为输入。当您从此 StyleBook 创建配置时,可以为此参数提供一个、两个或多个字符串。

强制?是

‘network’

对于 type: ipaddress,您可以指定 network 属性以从 ADM IPAM 网络自动分配 IP 地址。

当您创建 StyleBook 配置时,ADM 会从 network 属性自动分配 IP 地址。

示例:

      name: virtual-ip
      label: "Load Balancer IP Address"
      type: ipaddress
      network: "network-1"
      required: true
<!--NeedCopy-->

在此示例中,virtual-ip 字段从 network-1 自动分配 IP 地址。当配置被删除时,IP 地址会释放回网络。

‘dynamic-allocation’

dynamic-allocation 属性已添加到 type:ipaddress 的参数定义中。使用此属性可以动态列出 ADM IPAM 网络。此属性可以接受 truefalse 作为输入。对于 type: ipaddress,指定 dynamic-allocation: true 属性以动态列出 ADM 中存在的 ADM IPAM 网络。在配置包创建表单中,您可以执行以下操作:

  1. 从列表中选择所需的 IPAM 网络。

  2. 指定要从选定 IPAM 网络分配的 IP 地址。

    如果未指定 IP 地址,ADM 会从选定的 IPAM 网络自动分配一个 IP 地址。

示例:

  -
    name: virtual-ip
    label: "Load Balancer IP Address"
    type: ipaddress
    dynamic-allocation: true
    required: true
<!--NeedCopy-->

在此示例中,virtual-ip 字段列出了 ADM 中存在的 ADM IPAM 网络。从列表中选择一个网络以从该网络自动分配 IP 地址。当配置被删除时,IP 地址会释放回网络。

‘key’

指定 true 或 false 以指示此参数是否为 StyleBook 的关键参数。

一个 StyleBook 只能有一个参数定义为 “key” 参数。

当您从同一个 StyleBook(在相同或不同的 ADC 实例上)创建不同的配置时,每个配置都为此参数具有不同/唯一的值。

默认值为 false。

强制?否

‘required’

指定 true 或 false 以指示参数是强制性的还是可选的。如果设置为 true,则该参数是强制性的,用户在创建配置时必须为此参数提供一个值。

ADM GUI 会强制用户为此参数提供一个有效值。

默认值为 false。

强制?否

‘allowed-values’

当类型设置为 “string” 时,使用此属性为参数定义有效值的列表。

从 ADM GUI 创建配置时,系统会提示用户从该列表中选择一个参数值。

注意

如果您希望将列表值显示为单选选项,请设置 layout 属性。

示例 1

-
      name: ipaddress
      type: string
      allowed-values:
            -  SOURCEIP
            -  DEST IP
            -  NONE
<!--NeedCopy-->

示例 2

-
      name: TCP Port
      type: tcp-port
      allowed-values:
            -  80
            -  81
            -  8080
<!--NeedCopy-->

示例 3

tcp-ports 列表,其中列表的每个元素只能具有 allowed-values 中指定的值。

-
      name: tcpports
      type: tcp-port[]
      allowed-values:
            -  80
            -  81
            -  8080
            -  8081
<!--NeedCopy-->

强制?否

‘default’

使用此属性为可选参数分配默认值。当用户创建配置时未指定值,则使用默认值。

如果满足以下条件,则参数不取值:

  • 参数没有默认值。

  • 用户未提供参数的值。

示例 1

-
      name: timeout
      type: number
      default: 20
<!--NeedCopy-->

示例 2

列出参数的默认值:

-
      name: protocols
      type: string[]
      default:
            -  TCP
            -  UDP
            -  IP
<!--NeedCopy-->

示例 3

-
      name: timeout
      type: number
      default: 20
<!--NeedCopy-->

示例 4

-
      name: tcpport
      type: tcp-port
      default: 20
<!--NeedCopy-->

强制?否

‘pattern’

当参数类型为 “string” 时,使用此属性为该参数的有效值定义模式(正则表达式)。

示例

-
      name: appname
      type: string
      pattern: "[a-z]+"
<!--NeedCopy-->

强制?否

‘min-value’

使用此属性为 numbertcp-port 类型的参数定义最小值。

示例

-
      name: audio-port
      type: tcp-port
      min-value: 5000
<!--NeedCopy-->

数字的 min-value 可以是负数。但是,tcp-portmin-value 必须是正数。

强制?否

‘max-value’

使用此属性为 numbertcp-port 类型的参数定义最大值。

如果已定义,请确保最大值大于最小值。

示例

-
      name: audio-port
      type: tcp-port
      min-value: 5000
      max-value: 15000
<!--NeedCopy-->

强制?否

‘min-length’

使用此属性为 “string” 类型的参数定义接受值的最小长度。

确保定义为值的字符的最小长度大于或等于零。

示例

-
      name: appname
      type: string
      min-length: 3
<!--NeedCopy-->

强制?否

‘max-length’

使用此属性为 “string” 类型的参数定义接受值的最大长度。

确保值的最大长度大于或等于 min-length 中定义的字符长度。

示例

-
      name: appname
      type: string
      max-length: 64
<!--NeedCopy-->

强制?否

‘min-items’

使用此属性定义作为列表的参数中的最小项数。

确保最小项数大于或等于零。

示例

-
      name: server-ips
      type: ipaddress[]
      min-items: 2
<!--NeedCopy-->

强制?否

‘max-items’

使用此属性定义作为列表的参数中的最大项数。

如果已定义,请确保最大项数大于最小项数。

示例

-
      name: server-ips
      type: ipaddress[]
      min-items: 2
      max-items: 250
<!--NeedCopy-->

强制?否

‘gui’

使用此属性自定义 ADM GUI 中参数的布局。

强制?否

‘columns’

此属性是 gui 属性的子属性。使用此属性定义在 ADM GUI 中显示 type: object[] 参数的列数。

强制?否

‘updatable’

此属性是 gui 属性的子属性。使用此属性指定配置创建后参数是否可以更新。仅在 string、boolean 或 number 等简单参数类型上设置此属性。

如果值设置为 false,则在更新配置时,参数字段将显示为灰色。

强制?否

‘collapse_pane’

此属性是 gui 属性的子属性。使用此属性指定定义此对象参数布局的窗格是否可折叠。

如果值设置为 true,则用户可以展开或折叠此父参数下的子参数。

示例

gui:

 collapse_pane: true

 columns: 2
<!--NeedCopy-->

完整参数部分的示例:


parameters:

   -

      name: name

      label: Name

      description: Name of the application

      type: string

      required: true

   -

      name: ip

      label: IP Address

      description: The virtual IP address used for this application

      type: ipaddress

      required: true

   -

      name: svc-servers

      label: Servers

      type: object[]

      required: true

      parameters:

        -

              name: svc-ip

              label: Server IP

              description: The IP address of the server

              type: ipaddress

              required: true

        -

              name: svc-port

              label: Server Port

              description: The TCP port of the server

              type: tcp-port

              default: 80

        -

              name: lb-alg

              label: LoadBalancing Algorithm

              type: string

              allowed-values:

                 -  ROUNDROBIN

                 -  LEASTCONNECTION

              default: ROUNDROBIN

        -

              name: enable-healthcheck

              label: Enable HealthCheck?

              type: boolean

              default: true
<!--NeedCopy-->

以下示例定义了列表的所有属性以及前面部分中解释的值:


        -
              name: features-list

              type: string[]

              min-length: 1

              max-length: 3

              min-items: 1

              max-items: 3

              pattern: "[A-Z]+"

              allowed-values:

                -  SP

                -  LB

                -  CS

              default:

                -  LB
<!--NeedCopy-->

‘layout’

此属性是 gui 属性的子属性。使用此属性将列表值显示为单选按钮。在 StyleBook 定义的参数部分中,将 layout 属性设置为 radio。它适用于具有 allowed-values 属性的参数。当您创建配置包时,ADM GUI 会将 allowed-values 列表中的值显示为单选按钮。

示例:

-
    gui:
        layout: radio
    allowed-values:
        -  One
        -  Two
        -  Three
<!--NeedCopy-->

One、Two 和 Three 值在 ADM GUI 中显示为单选按钮。

‘dependent-parameters’

此属性是 gui 属性的子属性。它根据另一个参数中指定的值,动态控制参数在 StyleBook 配置表单中的外观或其初始值。

在控制参数在表单上行为的源参数上指定此属性。您可以包含控制其他参数的多个条件。例如,源参数 protocol 可以有一个依赖参数 certificate,该参数仅在 protocol 参数值为 SSL 时才显示。

每个条件可以具有以下属性:

  • target-parameter:指定此条件适用的目标参数。

  • matching-values:指定触发操作的源参数值列表。

  • action:指定对目标参数执行以下操作之一:

    • read-only:参数变为只读。

    • show:如果参数被隐藏,则它会出现在表单中。

    • hide:参数从表单中移除。

    • set-value:参数值设置为 value 属性中指定的值。

  • value:如果操作是 set-value,则为目标参数的值。

当用户输入与源参数上指定的值匹配时,目标参数的外观或值会根据指定的操作而改变。

示例:

 -
    name: lb-virtual-port
    label: "Load Balanced App Virtual Port"
    description: "TCP port representing the Load Balanced application"
    type: tcp-port
    gui:
      updatable: false
      dependent-parameters:
            -
              matching-values:
                -  80
              target-parameter: $parameters.lb-service-type
              action: set-value
              allowed-values:
              -  HTTP
              -  TCP
              -  UDP

    default: 80

<!--NeedCopy-->

在此示例中,依赖参数在 lb-virtual-port 参数(源参数)下指定。

当源参数值设置为 80 时,lb-service-type 参数会触发 set-value 操作。因此,用户可以选择以下选项之一:

  • HTTP
  • TCP
  • UDP