辅助器件

样本中 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

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 属性。帮助补偿的结果被分配给 lb-mon-comp 的 svc 服务器属性。

辅助器件