参数默认源构造

Last published : Oct 06, 2026
您可以使用此构造来重用其他 StyleBook 中的参数定义。
考虑这样一个场景:一个参数或一组参数在多个 StyleBook 中重复使用。为了避免每次创建新 StyleBook 时都重新定义这些参数,您可以一次性定义它们,然后使用 parameters-default-sources 构造将其定义导入到需要这些参数的 StyleBook 中。
例如,如果您的许多 StyleBook 需要配置虚拟 IP,您可能不得不在您创建的每个新 StyleBook 中定义与虚拟 IP 相关的相同参数。相反,您可以创建一个单独的 StyleBook,例如 vip-params,并在其中定义所有相关参数,如下例所示:
     -

     name: vip-params

     namespace: com.acme.commontypes

     version: "1.0"

     description: This StyleBook defines a typical virtual IP config.

     private: true

     schema-version: "1.0"

     parameters:

       -

           name: lb-appname

           label: Load Balanced Application Name

          description: Name of the Load Balanced application

           type: string

           required: true

       -

           name: lb-virtual-ip

           label: Load Balanced App Virtual IP address

           description: Virtual IP address representing the Load Balanced application

           type: ipaddress

           required: true

       -

           name: lb-virtual-port

           label: Load Balanced App Virtual Port

           description: TCP port representing the Load Balanced application

           type: tcp-port

           default: 80

       -

           name: lb-service-type

           label: Load Balanced App Protocol

           description: Protocol used for the Load Balanced application.

           type: string

           default: HTTP

           required: true

           allowed-values:

                - HTTP

                - SSL

                - TCP
然后,您可以创建使用这些参数的其他 StyleBook
     -

     name: acme-biz-app

     namespace: com.acme.stylebooks

     version: "1.0"

     description: This stylebook defines the NetScaler configuration for Biz App

     schema-version: "1.0"

     import-stylebooks:

       -

          namespace: com.acme.commontypes

          prefix: cmtypes

          version: "1.0"

     **parameters-default-sources:**

**            - cmtypes::vip-params**

     parameters:

         -

           name: monitorname

           label: Monitor Name

           description: Name of the monitor

           type: string

           required: true

         -

           name: type

           label: Monitor Type

           description: Type of the monitor

           type: string

           required: true

           allowed-values:

             - PING

             - TCP

             - HTTP

             - HTTP-ECV

             - TCP-ECV

             - HTTP-INLINE
在 StyleBook acme-biz-app 中,首先使用“import-stylebooks”部分导入 vip-params StyleBook 的命名空间和版本。然后添加 parameters-default-sources 构造,并指定 StyleBook 名称,即 vip-params。此参数的效果与直接在此 StyleBook 中定义 vip-params StyleBook 的参数相同。
您可以包含来自多个 StyleBook 的参数,因为 parameters-default-sources 是一个列表,并且列表中的每个项都应是一个 StyleBook。
除了包含来自其他 StyleBook 的参数外,您还可以使用 parameters 部分定义自己的参数。StyleBook 的完整参数列表是来自其他 StyleBook 的参数和在此 StyleBook 中定义的参数的组合。因此,表达式 $parameters 指的是这种参数组合。
如果一个参数在导入的 StyleBook 和当前 StyleBook 中都已定义,则当前 StyleBook 中的定义将覆盖从其他 StyleBook 导入的定义。您可以通过在必要时自定义一些导入的参数,同时按原样使用其余导入的参数来有效利用此方法。
parameters-default-sources 构造也可以用于嵌套参数,如下所示:
parameters:

    -

      name: vip-details

      label: Virtual IP details

      description: Details of the Virtual IP

      type: object

      required: true

      parameters-default-sources:

              - cmtypes::vip-params
此方法类似于将 StyleBook vip-params 的参数直接添加为此 StyleBook 中 vip-details 参数的子参数。