Application Delivery Management

辅助组件

StyleBook 中组件部分的主要用途是通过 Nitro 内置类型或创建实际配置对象的另一个 StyleBook 生成配置对象。辅助组件本身不构建配置对象。辅助组件从其他部分(例如参数对象、其他组件的属性或其他组件的输出)获取输入,并将其转换为其他形式。这可以稍后由其他组件用于生成实际的配置对象。辅助组件可以是两种类型:对象类型或不包含组件部分的另一个 StyleBook。

以下示例显示了用于在 NetScaler 实例上创建带监视器 (lb-mon-comp) 的负载平衡服务器的 StyleBook 片段。

parameters:
  -
    name: appname
    type: string
  -
    name: ips
    type: ipaddress[]
  -
    name: vip
    type: ipaddress

components:
  -
    name: help-comp
    type: cmtypes::server-ip-port-params
    repeat:
      repeat-list: $parameters.ips
      repeat-item: server-ip
    properties:
      ip: $server-ip
      port: 80
 -
    name: lb-mon-comp
    type: stlb::lb-mon
    properties:
      lb-appname: $parameters.appname
      lb-virtual-ip: $parameters.vip
      lb-virtual-port: 80
      lb-service-type: HTTP
      svc-service-type: HTTP
      svc-servers: $components.help-comp.properties
<!--NeedCopy-->

参数部分允许您输入应用程序名称和负载平衡服务器的 IP 地址。在 lb-mon-comp 组件部分中,lb-mon StyleBook 的 svc-servers 参数需要一个对象列表,其中每个项都有两个子参数:ip 和 port。

但是,此 StyleBook 的参数部分仅通过 $parameters.ips 接受服务器 IP。StyleBook 假定所有服务器都在端口 80 上运行。要使用 lb-mon StyleBook 创建负载平衡配置,您必须将 $parameters.ips 转换为对象列表。这可以通过使用上述示例中的辅助组件 help-comp 来实现。help-comp 组件的类型为 server-ip-port-params StyleBook。此 StyleBook 不包含任何组件。因此,它不创建任何配置对象。help-comp 在 $parameters.ips 上创建一个重复列表,并为 $parameters.ips 的每个项构造一个包含 ip 和 port(设置为静态 80)的对象。因此,help-comp 将 IP 地址列表转换为对象列表,该列表稍后可在 lb-mon-comp 中用于分配 svc-servers 属性。help-comp 的结果将分配给 lb-mon-comp 的 svc-servers 属性。

辅助组件