使用自定义数据源
除了作为数据源的托管 NetScaler 实例之外,如果输入数据重复用于创建多个配置,您可以定义和使用自定义数据源。您可以将输入数据保存到 NetScaler Console 中作为数据源。此外,您可以修改 StyleBooks 以使用此数据,而无需 StyleBook 用户重复提供输入。
在 StyleBook 定义中使用自定义数据源之前,请执行以下操作来定义自定义数据源:
添加数据源后,您可以在 StyleBook 定义中使用此数据源。有关详细信息,请参阅在 StyleBook 定义中使用自定义数据源。
添加数据源类型
指定数据源类型以区分检索数据的来源。
-
在 Applications > Configuration > Data Sources 中。
-
选择 Data Source Type,然后单击 Add。
-
指定数据源类型的 Name 和 Description。
-
单击 Proceed 以保存 Data Source Type。单击 Close 以退出工作流而不保存任何更改。

在此示例中,数据源类型设置为 Environment。此类型可用于将应用程序环境定义为数据源。
在数据源类型下添加集合架构
添加 Data Source Type 后,将显示一个用于为 Data Source Type 添加 Collection Schemas 的屏幕。
-
单击 Add。
-
指定集合架构的 Collection Name。
-
输入 Description。
-
根据需要,在 Attribute Details 下添加属性(名称及其类型)。
-
单击 Create。

在此示例中,App-virtual-servers 集合架构有四个属性。因此,您要存储的集合必须具有这些设置数据类型的属性。
添加数据源
为特定的数据源类型定义数据源。
-
转到 Applications > Configuration > Data Sources。
-
选择 Data Sources 选项卡,然后单击 Add。
-
指定 Name。
-
选择 Data Source Type,然后输入 Description。
-
单击 Proceed 以保存 Data Source。单击 Close 以退出工作流而不保存任何更改。

在此示例中,Production environment 已添加为数据源。
添加集合数据
添加 Data Source 后,将显示一个用于输入 Data Source 数据的屏幕。您可以看到 Collection Schemas 列表。
-
选择要添加集合数据的 Collection Schema。
-
单击 Manage Collection Data。
-
向集合添加数据。您可以逐个添加数据,也可以上传 CSV 文件。上传 CSV 文件时,请确保列名与集合架构的属性名称匹配。
-
单击 OK。

使用不带集合的自定义数据源
以下 parameters 部分说明了如何在 StyleBook 定义中定义不带集合的自定义数据源。
parameters:
- name: selected-environment
label: Select a custom datasource environment
type: datum
required: true
data-source:
type: "Environment"
<!--NeedCopy-->
配置包 GUI 会显示适用的数据源,StyleBook 用户可以选择其中任何一个来创建配置包。

在此示例中,它使用 Production 数据源来检索数据。
在 Environment 数据源类型中,要访问 App-virtual-servers 集合类型,请使用以下表达式:
$parameters.selected-environment.collections.App-virtual-servers
<!--NeedCopy-->
示例代码片段:
components:
-
name: lbvserver-comp
type: ns::lbvserver
repeat: $parameters.selected-environment.collections.App-virtual-servers
repeat-item: app
properties:
name: $app.attributes.Name + "-lb"
ipv46: ip($app.attributes.IPv46 )
port: $app.attributes.Port
servicetype: $app.attributes.Protocol
components:
-
name: servicegroup-comp
type: ns::servicegroup
properties:
servicegroupname: $parent.properties.name + "-svcgrp"
servicetype: $parent.properties.servicetype
components:
-
name: lbvserver-svg-binding
type: ns::lbvserver_servicegroup_binding
properties:
name: $parent.parent.properties.name
servicegroupname: $parent.properties.servicegroupname
<!--NeedCopy-->
使用带集合的自定义数据源
以下 parameters 部分说明了如何在 StyleBook 定义中定义自定义数据源。它允许 StyleBook 用户选择集合中的特定项。
parameters:
- name: selected-app-vserver
label: Select a collection from the datasource
type: datum
required: true
data-source:
type: Environment
collection: App-virtual-servers
<!--NeedCopy-->
在此示例中,datum 参数用于定义自定义数据源。它使用 Production 数据源从 App-virtual-servers 集合架构中检索数据。
在 Environment 数据源类型中,要从 App-virtual-servers 集合访问协议,请使用以下表达式:
$parameters.selected-app-vserver.attributes.Protocol
<!--NeedCopy-->
示例代码片段:
components:
- name: lbvserver-comp
type: ns::lbvserver
properties:
name: $parameters.selected-app-vserver.attributes.Name
ipv46: $parameters.selected-app-vserver.attributes.IPv46
port: $parameters.selected-app-vserver.attributes.Port
servicetype: $parameters.selected-app-vserver.attributes.Protocol
<!--NeedCopy-->
在 parameters 部分中定义集合类型时,StyleBook 用户可以选择数据源和集合。
从集合中选择多个项:
以下 parameters 部分允许 StyleBook 用户选择集合中的多个项。
parameters:
- name: selected-app-vservers
label: Select app-vservers from the collection
type: datum[]
required: true
data-source:
type: Environment
collection: App-virtual-servers
<!--NeedCopy-->
在此示例中,datum 参数用于定义自定义数据源数组。用户可以从单个数据源或跨数据源的“App-virtual-servers”集合中选择一个或多个项。
以下代码片段描述了访问所选项目及其属性的方式。
components:
-
name: lbvserver-comp
type: ns::lbvserver
repeat:
repeat-list: $parameters.selected-app-vservers
repeat-item: vserverObj
properties:
name: $vserverObj.attributes.Name
ipv46: $vserverObj.attributes.IPv46
port: $vserverObj.attributes.Port
servicetype: $vserverObj.attributes.Protocol
<!--NeedCopy-->
筛选集合数据:
以下 parameters 部分说明了如何在 StyleBook 定义中对自定义数据源集合指定筛选器。它允许 StyleBook 用户从筛选后的集合中选择特定项。
parameters:
- name: selected-app-vserver
label: Select a collection from the datasource
type: datum
required: true
data-source:
type: Environment
collection: App-virtual-servers
collection-filters:
Protocol: SSL
<!--NeedCopy-->
在此示例中,datum 参数用于定义自定义数据源。它使用 Environment 类型的数据源从 App-virtual-servers 集合架构中检索筛选后的数据。
StyleBook 用户选择虚拟服务器后,可以按照上一节中说明的相同方式访问所选项目的任何属性。