身為雲端範本設計人員,您可以使用輸入參數,以便使用者可以在請求時進行自訂選取。
輸入的運作方式
使用者提供輸入時,您不再需要儲存多個僅有細微差別的範本複本。此外,輸入可以準備用於第 2 天作業的範本。請參閱如何使用雲端範本輸入執行 vRealize Automation 第 2 天更新。
下列輸入顯示如何為 MySQL 資料庫伺服器建立一個雲端範本,使用者可以在其中將該範本部署到不同的雲端資源環境中,並且每次都套用不同的容量和認證。
新增輸入參數
在範本代碼中新增 inputs
區段,您可以在其中設定可選取的值。
在下列範例中,您可以選取機器大小、作業系統和叢集伺服器數目。
inputs: wp-size: type: string enum: - small - medium description: Size of Nodes title: Node Size wp-image: type: string enum: - coreos - ubuntu title: Select Image/OS wp-count: type: integer default: 2 maximum: 5 minimum: 2 title: Wordpress Cluster Size description: Wordpress Cluster Size (Number of nodes)
如果您不滿意編輯程式碼,可以按一下程式碼編輯器輸入索引標籤,然後在其中輸入設定。下列範例顯示前面提到的 MySQL 資料庫的一些輸入。
參考輸入參數
然後,在 resources
區段中,使用 ${input.property-name}
語法參考輸入參數。
如果內容名稱中包含空格,請使用方括弧和雙引號進行分隔,而非使用點標記法:${input["property name"]}
input
一詞,除非指示輸入參數。
resources: WebTier: type: Cloud.Machine properties: name: wordpress flavor: '${input.wp-size}' image: '${input.wp-image}' count: '${input.wp-count}'
巢狀輸入
如果要對輸入進行組織整理或分類,則支援巢狀輸入。在以下範例中,CPU 和記憶體都位於 level 父標題下。
inputs: cluster: type: integer title: Cluster default: 1 minimum: 1 maximum: 4 level: type: object properties: cpu: type: integer title: CPU default: 1 minimum: 1 maximum: 4 memory: type: integer title: Memory default: 2048 minimum: 2048 maximum: 4096
在 resources 區段中,若要參考巢狀輸入,請在路徑中包含父項。
resources: Disk_1: type: Cloud.vSphere.Disk allocatePerInstance: true properties: capacityGb: 1 count: ${input.cluster} Machine_1: type: Cloud.vSphere.Machine allocatePerInstance: true properties: totalMemoryMB: ${input.level.memory} attachedDisks: - source: ${slice(resource.Disk_1[*].id, count.index, count.index + 1)[0]} count: ${input.cluster} imageRef: ubuntu cpuCount: ${input.level.cpu}
可選輸入與必要輸入
對於除布林值以外的所有類型,依預設,使用者項目是可選的。若要求輸入,請執行以下作業之一:
- 設定預設值。
- 如果沒有巢狀輸入,請新增
populateRequiredOnNonDefaultProperties
內容:inputs: cluster: type: integer populateRequiredOnNonDefaultProperties: true title: Cluster minimum: 1 maximum: 4
請注意,也可以在參考正式的內容群組時套用此設定:
inputs: pgmachine: type: object populateRequiredOnNonDefaultProperties: true $ref: /ref/property-groups/machine
- 如果有巢狀輸入,請新增
populateRequiredForNestedProperties
內容:inputs: cluster: type: integer title: Cluster default: 1 minimum: 1 maximum: 4 level: type: object properties: cpu: type: integer populateRequiredForNestedProperties: true title: CPU minimum: 1 maximum: 4 memory: type: integer populateRequiredForNestedProperties: true title: Memory minimum: 2048 maximum: 4096
請注意,也可以在巢狀正式的內容群組參考時套用此設定:
level: type: object properties: cpu: type: integer populateRequiredForNestedProperties: true title: CPU minimum: 1 maximum: 4 memory: type: integer populateRequiredForNestedProperties: true title: Memory minimum: 2048 maximum: 4096 pgrequester: type: object populateRequiredForNestedProperties: true $ref: /ref/property-groups/requesterDetails
可選輸入 - 若要強制輸入保持可選狀態,請使用刻度標記設定空白預設值:
owner: type: string minLength: 0 maxLength: 30 title: Owner Name description: Account Owner default: ''
輸入內容清單
內容 | 說明 |
---|---|
const | 與 oneOf 搭配使用。實際值與易記標題相關聯。 |
預設值 | 輸入的預先填入值。 預設值必須為正確的類型。請勿輸入單字做為整數的預設值。 |
說明 | 輸入的使用者說明文字。 |
已加密 | 是否對使用者輸入的輸入進行加密 (true 或 false)。 密碼通常會加密。 此外,還可以建立在多個雲端範本之間可重複使用的加密內容。請參閱密碼 Cloud Assembly 內容。 |
列舉 | 允許值的下拉式功能表。 使用下列範例做為格式指南。 enum: - value 1 - value 2 |
format | 設定輸入的預期格式。例如,(25/04/19) 支援日期-時間。 允許在 Service Broker 自訂表單中使用日期選擇器。 |
items | 宣告陣列中的項目。支援數字、整數、字串、布林值或物件。 |
maxItems | 陣列中可選取的項目數目上限。 |
maxLength | 字串允許的字元數目上限。 例如,若要限制欄位為 25 個字元,請輸入 |
上限 | 數字或整數的最大允許值。 |
minItems | 陣列中可選取的項目數目下限。 |
minLength | 字串允許的字元數目下限。 |
下限 | 數字或整數的最小允許值。 |
oneOf | 允許使用者輸入表單為不太易記的值 (const) 顯示易記名稱 (title)。如果設定預設值,則設定 const 而非 title。 適用於類型字串、整數和數字。 |
模式 | 規則運算式語法中的字串輸入允許的字元。 例如, |
properties | 宣告物件的 key:value 內容區塊。 |
readOnly | 僅用來提供表單標籤。 |
title | 與 oneOf 搭配使用。const 值的易記名稱。在部署時,標題顯示在使用者輸入表單上。 |
類型 | 數字、整數、字串、布林值或物件的資料類型。
重要:
布林值類型會向請求表單新增空白核取方塊。使該方塊保持原樣不會將輸入設定為 False。 若要將輸入設定為 False,使用者必須勾選並清除該方塊。 |
writeOnly | 在表單中隱藏星號後面的按鍵輸入。無法與 enum 搭配使用。顯示為 Service Broker 自訂表單中的密碼欄位。 |
其他範例
包含列舉的字串
image: type: string title: Operating System description: The operating system version to use. enum: - ubuntu 16.04 - ubuntu 18.04 default: ubuntu 16.04 shell: type: string title: Default shell Description: The default shell that will be configured for the created user. enum: - /bin/bash - /bin/sh
包含最小值和最大值的整數
count: type: integer title: Machine Count description: The number of machines that you want to deploy. maximum: 5 minimum: 1 default: 1
物件陣列
tags: type: array title: Tags description: Tags that you want applied to the machines. items: type: object properties: key: type: string title: Key value: type: string title: Value
包含易記名稱的字串
platform: type: string oneOf: - title: AWS const: platform:aws - title: Azure const: platform:azure - title: vSphere const: platform:vsphere default: platform:aws
包含模式驗證的字串
username: type: string title: Username description: The name for the user that will be created when the machine is provisioned. pattern: ^[a-zA-Z]+$
做為密碼的字串
password: type: string title: Password description: The initial password that will be required to logon to the machine. Configured to reset on first login. encrypted: true writeOnly: true
做為文字區域的字串
ssh_public_key: type: string title: SSH public key maxLength: 256
布林值
public_ip: type: boolean title: Assign public IP address description: Choose whether your machine should be internet facing. default: false
日期和時間行事曆選取器
leaseDate: type: string title: Lease Date format: date-time