Application Delivery Management

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

可选属性

在有些情况下,组件的一个属性从一个表达式接收其值,表达式可以是简单表达式(例如参数引用),也可以是较复杂的表达式。在组件中设置此属性值是可选的。可以选择仅当表达式返回实际值时设置该属性值,否则可以选择不设置此属性。

例如,假设要设置的其中一个属性是其类型为 ns::lbvserver 的组件的 lbmethod(负载平衡算法)。属性 lbmethod 的值取自用户提供的一个参数值,如下所示:

components - name: lbvserver_comp type: ns::lbvserver properties: name: $parameters.lb-appname + "-lb" servicetype: $parameters.lb-service-type ipv46: $parameters.lb-virtual-ip port: 80 lbmethod: $parameters.lb-advanced.algorithm

现在,考虑参数 lb-高级d.算法 是一个可选参数。而且,如果用户没有为此参数提供值,因为该参数是可选的,则表达式 $参数s.lb-高级d.算法将计算 为空值。因此,为 lbmethod 属性传递的值无效。为了避免这种情况,可以在属性名称后面添加后缀“?”将属性标注为可选,如下所示:

components - name: lbvserver_comp type: ns::lbvserver properties: name: $parameters.lb-appname + "-lb" servicetype: $parameters.lb-service-type ipv46: $parameters.lb-virtual-ip port: 80 lbmethod?: $parameters.lb-advanced.algorithm

使用“?“如果右侧的表达式计算为什么,则忽略该属性,在这种情况下,这将等同于定义如下的组件:

components - name: lbvserver_comp type: ns::lbvserver properties: name: $parameters.lb-appname + "-lb" servicetype: $parameters.lb-service-type ipv46: $parameters.lb-virtual-ip port: 80

由于 lbmethod 是可选的,忽略它后,此组件仍是有效组件。请注意,如果在 lbmethod 的类型“ns::lbvserver”中定义了默认值,则 lbmethod 可能采用其默认值。

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