在一些部署方案中,组件需要其他组件的属性值以对其自身进行自定义。通过创建属性绑定,可以在 vRealize Automation 中实现此目的。您可以为属性绑定设计 Software 操作脚本,但实际绑定是由组合蓝图的架构师配置。

除了将属性设置为硬编码值外,软件架构师、IaaS 架构师或应用程序架构师还可以将 Software 组件属性绑定到蓝图中的其他属性,例如,IP 地址或安装位置。将Software属性绑定到其他属性时,可以基于其他组件属性或虚拟机属性的值自定义脚本。例如,WAR 组件可能需要 Apache Tomcat 服务器的安装位置。在脚本中,可以对 WAR 组件进行配置,使其在脚本中将 server_home 属性值设置为 Apache Tomcat 服务器的 install_path 属性值。只要组合蓝图的架构师将 server_home 属性绑定到 Apache Tomcat 服务器的 install_path 属性,系统便会正确设置 server_home 属性值。

您的操作脚本仅可使用这些脚本中定义的属性,且您仅可使用字符串和阵列值创建属性绑定。蓝图属性阵列不以任何特定顺序返回,因此绑定到可群集或可缩放的组件可能不会产生预期的值。例如,您的软件组件需要计算机群集的所有计算机 ID,而您允许用户请求 1-10 的群集,并从 1-10 台计算机缩放部署。如果您将软件属性配置为字符串类型,将会从群集获得单个随机选择的计算机 ID。如果您将软件属性配置为阵列类型,将会获得群集中所有计算机 ID 的阵列,但无特定顺序。如果您的用户缩放部署,则每个操作的值的顺序可能不同。为了确保永远不会丢失群集组件的值,您可以为任何软件属性使用阵列类型。但是,您必须设计自己的软件组件,以便不会出现以任何特定顺序排列的值阵列。

绑定到不同类型的属性时,请参见“字符串属性绑定示例”表,了解字符串属性值的示例。

表 1. 字符串属性绑定示例

属性类型示例

可绑定属性类型

绑定结果(A 绑定到 B)

字符串(属性 A)

字符串(属性 B="Hi")

A="Hi"

字符串(属性 A)

内容(属性 B="http://my.com/content")

A="http://my.com/content"

字符串(属性 A)

数组(属性 B=["1","2"])

A="["1","2"]"

字符串(属性 A)

计算(属性 B="Hello")

A="Hello"

绑定到不同类型的属性时,请参见“数组属性绑定示例”表,了解数组属性值的示例。

表 2. 数组属性绑定示例

属性类型示例

可绑定属性类型

绑定结果(A 绑定到 B)

数组(属性 A)

字符串(属性 B="Hi")

A="Hi"

数组(属性 A)

内容(属性 B="http://my.com/content")

A="http://my.com/content"

数组(属性 A)

计算(属性 B="Hello")

A="Hello"