Application Delivery Management

Parameters-default-sources 构造

您可以使用此构造来重用其他 StyleBook 中的参数定义。

设想一个场景,其中一个参数或一组参数在多个 StyleBook 中重复使用。为避免每次创建新的 StyleBook 时都重新定义这些参数,您可以只定义一次,然后使用 parameters-default-sources 构造将其定义导入需要这些参数的 StyleBook 中。

例如,如果您的许多 StyleBook 需要配置虚拟 IP,您可能需要在您创建的每个新 StyleBook 中定义与虚拟 IP 相关的相同参数。相反,您可以创建一个单独的 StyleBook,例如名为“vip-params”,在该 StyleBook 中定义所有相关参数,如以下示例所示:

     -
     name: vip-params
     namespace: com.acme.commontypes
     version: "1.0"
     description: 此 StyleBook 定义了典型的虚拟 IP 配置。
     private: true
     schema-version: "1.0"
     parameters:
       -
           name: lb-appname
           label: 负载均衡应用程序名称
          description: 负载均衡应用程序的名称
           type: string
           required: true
       -
           name: lb-virtual-ip
           label: 负载均衡应用程序虚拟 IP 地址
           description: 表示负载均衡应用程序的虚拟 IP 地址
           type: ipaddress
           required: true
       -
           name: lb-virtual-port
           label: 负载均衡应用程序虚拟端口
           description: 表示负载均衡应用程序的 TCP 端口
           type: tcp-port
           default: 80
       -
           name: lb-service-type
           label: 负载均衡应用程序协议
           description: 用于负载均衡应用程序的协议。
           type: string
           default: HTTP
           required: true
           allowed-values:
                - HTTP
                - SSL
                - TCP
<!--NeedCopy-->

然后,您可以创建使用这些参数的其他 StyleBook。以下是此类 StyleBook 的示例。

     -
     name: acme-biz-app
     namespace: com.acme.stylebooks
     version: "1.0"
     description: 此 StyleBook 定义了 Biz App 的 NetScaler 配置
     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: 监视器名称
           description: 监视器的名称
           type: string
           required: true
         -
           name: type
           label: 监视器类型
           description: 监视器的类型
           type: string
           required: true
           allowed-values:
             - PING
             - TCP
             - HTTP
             - HTTP-ECV
             - TCP-ECV
             - HTTP-INLINE
<!--NeedCopy-->

在 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: 虚拟 IP 详细信息
      description: 虚拟 IP 的详细信息
      type: object
      required: true
      parameters-default-sources:
              - cmtypes::vip-params
<!--NeedCopy-->

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

Parameters-default-sources 构造