Application Delivery Management

这篇文章已经过机器翻译.放弃

属性-默认源构造

properties-default-sources 构造类似于 parameters-default-sources 构造。parameters-default-sources 构造允许在样本中重用(来自其他样本的)现有参数,properties-default-sources 构造允许用户根据现有来源指定组件的属性。

组件的属性可以分布在样本的多个部分中。例如,属性可能来自对象参数、返回对象的替换、其他组件的属性或其他组件的输出。在此类情况下,您需要在组件的定义中重新定义在样本的其他部分中出现的属性。显然,这是多余的,且可能会导致出错。为了解决此问题,可以使用 properties-default-sources 构造。properties-default-sources 构造是一个列表,其中每项均标识组件的一些属性的一个来源。

例如,假定一个创建 lbvserver 配置的组件。此组件应按以下所示定义 lbvserver 的属性。

parameters: - name: lb type: ns::lbvserver components: - name: lb-comp type: ns::lbvserver properties: name: $parameters.lb.name ipv46: $parameters.lb.ipv46 port: $parameters.lb.port servicetype: $parameters.lb.servicetype lbmethod: $parameters.lb.lbmethod

在上述示例中,看到 components 部分中定义的所有属性的值均取自 $parameters.lb 对象。尽管它们取自一个来源,但在样书中再次定义了属性。此外,如果向 $parameters.lb 对象添加与 lbvserver 的配置相关的新子参数,您需要更新 lb-comp 组件以添加与新子参数对应的新属性。

为了避免重新定义属性以及为了提取某个组件的所有相关属性而无需明确在 properties 部分中列出它们,可以使用 properties-default-sources 构造。上述示例可以编写如下。

parameters: - name: lb type: ns::lbvserver components: - name: lb-comp type: ns::lbvserver properties-default-sources: - $parameters.lb

在上述示例中,通过使用 properties-default-sources 构造,减小了组件定义的规模,这样,您可以简明地定义组件。此外,每当组件的属性的来源更改时,更改会自动反映出来。例如,在 $parameters.lb 对象中添加新属性“persistencetype”时,由于 persistencetype 是 lbvserver 的属性,因此,默认情况下,此属性添加到 lb-comp 的配置。因此,properties-default-sources 构造提供了定义组件的动态接口,而无需担心组件的属性的来源发生的更改。

计算组件的属性

本节讨论如果在组件中使用 properties-default-sources 构造,如何提取属性。首先,样本编译器根据组件的类型(在上述示例中为 lbvserver)标识组件的属性列表。然后,编译器按这些属性的定义顺序(在组件的 properties-default-sources 部分中)从多个来源中提取它们。如果某个属性存在于多个来源中,则出现在最后一个来源中的该属性的优先级高于其他来源中的该属性。最后,可以在组件的 properties 部分中覆盖使用 properties-default-sources 构造提取的属性。请务必注意,components 部分的定义至少应有一个 properties-default-sources 部分或一个 properties 部分。可以有两者。

本内容的正式版本为英文版。部分 Cloud Software Group 文档内容采用了机器翻译,仅供您参考。Cloud Software Group 无法控制机器翻译的内容,这些内容可能包含错误、不准确或不合适的语言。对于从英文原文翻译成任何其他语言的内容的准确性、可靠性、适用性或正确性,或者您的 Cloud Software Group 产品或服务沿用了任何机器翻译的内容,我们均不作任何明示或暗示的保证,并且适用的最终用户许可协议或服务条款或者与 Cloud Software Group 签订的任何其他协议(产品或服务与已进行机器翻译的任何文档保持一致)下的任何保证均不适用。对于因使用机器翻译的内容而引起的任何损害或问题,Cloud Software Group 不承担任何责任。
属性-默认源构造