Application Delivery Management

帮助程序组件

样书中 components 部分的主要用途是通过 Nitro 内置类型或创建实际配置对象的另一个样书来生成配置对象。帮助程序组件本身不会生成配置对象。帮助程序组件接收来自其他部分(例如,参数对象、其他组件的属性或其他组件的输出)的输入,并将其传输到其他表单中。以后,其他组件可以使用这些内容来生成实际配置对象。帮助程序组件的类型有两种:对象类型或不包含组件部分的另一个样书。

以下示例显示了样本的片段,该片段用于在 Citrix ADC 实例上创建具有监视器(lb-mon-comp)的负载平衡服务器。


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-->

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

但是,此样书的 parameters 部分仅通过 $parameters.ips 接受服务器 IP。该样书假定所有服务器都在端口 80 上运行。要使用 lb-mon 样本创建负载平衡配置,必须将 $parameters.ips 传输到对象列表。这是通过使用帮助程序组件(上述示例中的 help-comp)来实现的。help-comp 组件的类型为 server-ip-port-params 样本。此样书没有任何组件。因此,它不会创建任何配置对象。help-comp 基于 $parameters.ips 创建重复列表,并为 $parameters.ips 的每项构造由 ip 和 port(设置为静态 80)组成的对象。因此,help-comp 将 IP 地址列表传输到对象列表,以后可以在 lb-mon-comp 中使用该对象列表来分配 svc-servers 属性。help-comp 的结果即分配给 lb-mon-comp 的 svc-servers 属性。

帮助程序组件