参数

Last published : Oct 06, 2026
本节允许您定义在 StyleBook 中创建配置所需的所有参数。它描述了 StyleBook 接受的输入。尽管此部分是可选的,但大多数 StyleBook 可能都需要它。您可以将参数部分视为定义字段,供使用 StyleBook 在 NetScaler 实例上创建配置的用户使用。
当您将 StyleBook 导入 NetScaler Console 并使用它创建配置时,GUI 会使用 StyleBook 的此部分来显示一个表单。此表单接受定义的参数值的输入。
以下部分描述了您需要在此部分中为每个参数指定的属性:

'名称'

您要定义的参数的名称。您可以指定一个字母数字名称。
名称必须以字母开头,并且可以包含更多字母、数字、连字符 (-) 或下划线 (_)。
编写 StyleBook 时,您可以使用此“name”属性,通过 $parameters.\<name> 符号在其他部分引用该参数。
必填?是

'标签'

在 NetScaler Console GUI 中显示为此参数名称的字符串。
必填?否

'描述'

描述参数用途的帮助字符串。当用户单击此参数的帮助图标时,NetScaler Console GUI 会显示此文本。
必填?否

'类型'

这些参数可以接受的值的类型。参数可以是以下任何 内置类型:
  • 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) 组成。对于 IPv6 地址,子网掩码长度是 0-32 和 0-128 之间的整数。它用于确定网络中的 IP 地址数量。
    从 NetScaler Console 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”:
          [
          ]
    }
    }
  • tcp-port: 一个介于 0 到 65535 之间的数字,表示 TCP 或 UDP 端口。
  • password:表示不透明/秘密字符串值。当 NetScaler Console GUI 显示此参数的值时,它会显示为星号 (*****).
  • certfile:表示证书文件。使用 NetScaler Console GUI 创建 StyleBook 配置时,此值允许您直接从本地系统上传文件。上传的证书文件存储在 NetScaler Console 的 /var/mps/tenants/\<tenant_path>/ns_ssl_certs 目录中。
    证书文件将添加到 NetScaler Console 管理的证书列表中。
  • keyfile:表示证书密钥文件。使用 NetScaler Console GUI 创建 StyleBook 配置时,此值允许您直接从本地系统上传文件。上传的证书文件存储在 NetScaler Console 的 /var/mps/tenants/\<tenant_path>/ns_ssl_keys 目录中。
    证书密钥文件将添加到 NetScaler Console 管理的证书密钥列表中。
  • file:表示文件。
  • object:当您想将多个相关参数分组到一个父元素下时,使用此类型。将父参数的类型指定为“object”。“object”类型的参数可以包含嵌套的“parameters”部分来描述其包含的参数。
  • another StyleBook:当您使用此类型的参数时,此参数期望其值采用 StyleBook 中定义的参数形式,以表示其类型。
参数还可以具有 type,它是类型列表。为此,请在类型末尾添加 []。例如,如果 type 属性是 string[],则此参数接受字符串列表作为输入。从此 StyleBook 创建配置时,您可以为此参数提供一个、两个或多个字符串。
强制?是

'网络'

对于 type: ipaddress,您可以指定 network 属性,以从 NetScaler Console IPAM 网络自动分配 IP 地址。
当您创建 StyleBook 配置时,NetScaler Console 会从 network 属性自动分配 IP 地址。
示例:
name: virtual-ip
label: "Load Balancer IP Address"
type: ipaddress
network: "network-1"
required: true
在此示例中,virtual-ip 字段从 network-1 自动分配 IP 地址。当配置被删除时,IP 地址会释放回网络。

'动态分配'

在 type:ipaddress 的参数定义中添加了 dynamic-allocation 属性。使用此属性动态列出 NetScaler Console IPAM 网络。此属性可以接受 true 或 false 作为输入。对于 type: ipaddress,指定 dynamic-allocation: true 属性以动态列出 NetScaler Console 中的 NetScaler Console IPAM 网络。在配置包创建表单中,您可以执行以下操作:
  1. 从列表中选择所需的 IPAM 网络。
  2. 指定要从选定的 IPAM 网络分配的 IP 地址。
    如果未指定 IP 地址,NetScaler Console 会从选定的 IPAM 网络自动分配一个 IP 地址。
示例:
-
  name: virtual-ip
  label: "Load Balancer IP Address"
  type: ipaddress
  dynamic-allocation: true
  required: true
在此示例中,virtual-ip 字段列出了 NetScaler Console 中的 NetScaler Console IPAM 网络。从列表中选择一个网络以从该网络自动分配一个 IP 地址。当配置被删除时,IP 地址将释放回网络。

'键'

指定 true 或 false 以指示此参数是否为 StyleBook 的关键参数。
一个 StyleBook 只能有一个参数被定义为“key”参数。
当您从同一个 StyleBook(在相同或 不同的 NetScaler 实例上)创建不同的配置时,每个配置的此 参数的值都不同/唯一。
默认值为 false。
强制?否

'必需'

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

'允许值'

当类型设置为“string”时,使用此属性为参数定义有效值列表。
从 NetScaler Console GUI 创建配置时,系统会提示用户从此列表中选择参数值。
注意
如果要将列表值显示为单选选项,请设置 layout 属性。
示例 1:
-
      name: ipaddress
      type: string
      allowed-values:
            -  SOURCEIP
            -  DEST IP
            -  NONE
示例 2:
-
      name: TCP Port
      type: tcp-port
      allowed-values:
            -  80
            -  81
            -  8080
示例 3:
tcp-ports 列表,其中列表的每个元素只能具有 allowed-values 中指定的值。
-
      name: tcpports
      type: tcp-port[]
      allowed-values:
            -  80
            -  81
            -  8080
            -  8081
强制?否

'默认值'

使用此属性为可选参数分配默认值。当用户创建配置时未指定值,则使用默认值。
如果满足以下条件,则参数不带任何值:
  • 参数没有默认值。
  • 用户未提供参数值。
示例 1:
-
      name: timeout
      type: number
      default: 20
示例 2:
要列出参数的默认值:
-
      name: protocols
      type: string[]
      default:
            -  TCP
            -  UDP
            -  IP
示例 3:
-
      name: timeout
      type: number
      default: 20
示例 4:
-
      name: tcpport
      type: tcp-port
      default: 20
强制?否

'模式'

使用此属性定义一个模式(正则表达式),用于此 参数的有效值,当参数类型为“string”时。
示例:
-
      name: appname
      type: string
      pattern: "[a-z]+"
强制?否

'最小值'

使用此属性定义 number 或 tcp-port 类型参数的最小值。
示例:
-
      name: audio-port
      type: tcp-port
      min-value: 5000
数字的 min-value 可以是负数。但是,tcp-port 的 min-value 必须是正数。
强制性?否

'最大值'

使用此属性定义 number 或 tcp-port 类型参数的最大值。
确保最大值大于最小值(如果已定义)。
示例:
-
      name: audio-port
      type: tcp-port
      min-value: 5000
      max-value: 15000
强制性?否

'最小长度'

使用此属性定义参数可接受值的最小长度,该参数的 类型为“string”。
确保定义为值的字符的最小长度大于或等于零。
示例:
-
      name: appname
      type: string
      min-length: 3
强制性?否

'最大长度'

使用此属性定义参数可接受值的最大长度,该参数的 类型为“string”。
确保值的最大长度大于或等于 min-length 中定义的字符长度。
示例:
-
      name: appname
      type: string
      max-length: 64
必填?否

“最小项数”

使用此属性定义作为列表的参数中的最小项目数。
确保最小项目数大于或等于零。
示例:
-
      name: server-ips
      type: ipaddress[]
      min-items: 2
必填?否

“最大项数”

使用此属性定义参数中的最大项数,该参数是一个 列表。
如果已定义,请确保最大项目数大于最小项目数。
示例:
-
      name: server-ips
      type: ipaddress[]
      min-items: 2
      max-items: 250
必填?否

“GUI”

使用此属性自定义 NetScaler Console GUI 中参数的布局。
强制性?否

“列”

此属性是 gui 属性的子属性。使用此属性定义在 NetScaler Console GUI 中显示 type: object[] 参数的列数。
强制性?否

“可更新”

此属性是 gui 属性的子属性。使用此属性指定在创建配置后是否可以更新参数。仅在简单参数类型(例如字符串、布尔值或数字)上设置此属性。
如果值设置为 false,则在更新配置时,参数字段将灰显。
强制性?否

'collapse_pane'

此属性是 gui 属性的子属性。使用此属性指定定义此对象参数布局的窗格是否可折叠。
如果值设置为 true,用户可以展开或折叠此父参数下的子参数。
示例:
gui:

 collapse_pane: true

 columns: 2
完整参数部分的示例:

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
以下示例定义了列表的所有属性以及前面部分中解释的值:

        -
              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

“布局”

此属性是 gui 属性的子属性。使用此属性将列表值显示为单选按钮。在 StyleBook 定义的参数部分中,将 layout 属性设置为 radio。它适用于具有 allowed-values 属性的参数。创建配置包时,NetScaler Console GUI 会将 allowed-values 列表中的值显示为单选按钮。
示例:
-
    gui:
        layout: radio
    allowed-values:
        - One
        - Two
        - Three
值“One”、“Two”和“Three”在 NetScaler Console GUI 中显示为单选按钮。

'依赖参数'

此属性是 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
在此示例中,依赖参数在 lb-virtual-port 参数(源参数)下指定。
当源参数值设置为 80 时,lb-service-type 参数会触发 set-value 动作。因此,用户可以选择以下选项之一:
  • HTTP
  • TCP
  • UDP