在數個部署案例中,元件需要另一個元件的內容值來自訂本身。您可以透過建立內容繫結使用 vRealize Automation 執行此操作。您可以針對內容繫結設計軟體動作指令碼,但實際繫結由組合藍圖的架構設計人員設定。

除了將內容設定為硬式編碼值之外,軟體架構設計人員、IaaS 架構設計人員或應用程式架構設計人員還可以將軟體元件內容繫結至藍圖中的其他內容,例如 IP 位址或安裝位置。當您將軟體內容繫結至其他內容時,您可以根據其他元件內容或虛擬機器內容的值自訂指令碼。例如,WAR 元件可能需要 Apache Tomcat 伺服器的安裝位置。在您的指令碼中,您可以設定 WAR 元件,將 server_home 內容值設為指令碼中的 Apache Tomcat 伺服器 install_path 內容值。只要組合藍圖的架構設計人員將 server_home 內容繫結至 Apache Tomcat 伺服器的 install_path 內容,就會正確設定 server_home 內容值。

動作指令碼只能使用在這些指令碼中定義的內容,並且您只能使用字串和陣列值建立內容繫結。藍圖內容陣列不會以任何特定順序傳回,因此繫結至可叢集化或可縮放元件可能不會產生預期值。例如,您的軟體元件需要機器叢集的每個機器識別碼,並且您允許使用者申請 1-10 個叢集以及縮放 1-10 台機器部署。如果將軟體內容設定為字串類型,請從叢集取得隨機選取的單一機器識別碼。如果將軟體內容設定為陣列類型,請取得叢集中所有機器識別碼的陣列,但不依照任何特定順序。如果使用者縮放部署,則每項作業的值順序會有所不同。若要確保永遠不會遺失叢集元件的值,您可以將陣列類型用於任何軟體內容。但是,您必須設計軟體元件,以便其無法以任何特定順序預期值陣列。

請參閱「字串內容繫結範例」表格,瞭解繫結至不同內容類型時的字串內容值範例。

表格 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"