使用自定义数据源
除了 将托管的 NetScaler 实例作为数据源 之外,如果输入数据重复用于创建多个配置,您还可以定义和使用自定义数据源。您可以将输入数据作为数据源保存在 NetScaler Console 中。而且,您可以修改 StyleBook 以使用此数据,而无需 StyleBook 用户重复提供输入。
在 StyleBook 定义中使用自定义数据源之前,请执行以下操作来定义自定义数据源:
添加数据源后,您可以在 StyleBook 定义中使用此数据源。有关详细信息,请参阅 在 StyleBook 定义中使用自定义数据源。
添加数据源类型
指定数据源类型以区分检索数据的来源。
-
在 应用程序 > 配置 > 数据源 中。
-
选择 数据源类型,然后单击 添加。
-
指定数据源类型的 名称 和 描述。
-
单击 继续 以保存 数据源类型。单击 关闭 以退出工作流而不保存任何更改。
在此示例中,数据源类型设置为 Environment。此类型可用于将应用程序环境定义为数据源。
在数据源类型下添加集合架构
添加 Data Source Type 后,将显示一个用于为 ““Data Source Type** 添加 Collection Schemas 的屏幕。
-
单击 Add。
-
为集合架构指定 Collection Name。
-
输入 Description。
-
根据需要,在 Attribute Details 下添加属性(名称及其类型)。
-
单击 Create。
在此示例中,App-virtual-servers 集合架构有四个属性。因此,您要存储的集合必须具有这些已设置数据类型的属性。
添加数据源
为特定数据源类型定义数据源。
-
转到 应用程序 > 配置 > 数据源。
-
选择 Data Sources 选项卡,然后单击 Add。
-
指定 Name。
-
选择数据源类型,然后输入描述。
-
单击继续以保存数据源。单击关闭以退出工作流而不保存任何更改。
在此示例中,生产环境被添加为数据源。
添加集合数据
添加数据源后,将显示一个用于输入数据源数据的屏幕。您可以看到集合架构的列表。
-
选择要向其中添加集合数据的集合架构。
-
单击管理集合数据。
-
将数据添加到集合。您可以逐个添加数据或上传 CSV 文件。上传 CSV 文件时,请确保列名与集合架构的属性名匹配。
-
单击确定。
使用不带集合的自定义数据源
以下
parameters 部分解释了如何在 StyleBook 定义中定义不带集合的自定义数据源。
parameters:
- name: selected-environment
label: Select a custom datasource environment
type: datum
required: true
data-source:
type: "Environment"
配置包 GUI 显示适用的数据源,StyleBook 用户可以选择其中任何一个来创建配置包。
在此示例中,它使用
Production 数据源来检索数据。
在
Environment 数据源类型中,要访问 App-virtual-servers 集合类型,请使用以下表达式:
$parameters.selected-environment.collections.App-virtual-servers
示例代码片段:
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
将自定义数据源与集合一起使用
以下
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
在此示例中,
datum 参数用于定义自定义数据源。它使用 Production 数据源从 App-virtual-servers 集合架构中检索数据。
在
Environment 数据源类型中,要从 App-virtual-servers 集合访问协议,请使用以下表达式:
$parameters.selected-app-vserver.attributes.Protocol
示例代码片段:
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
当您在
parameters 部分中定义集合类型时,StyleBook 用户可以选择数据源和集合。
从集合中选择多个项目:
以下参数部分允许 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
在此示例中,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
筛选集合数据:
以下参数部分说明了如何在 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
在此示例中,datum 参数用于定义自定义数据源。它使用类型为 Environment 的数据源来检索 App-virtual-servers 集合架构中的过滤数据。
StyleBook 用户选择虚拟服务器后,可以按照上一节中说明的相同方式访问所选项目的任何属性。