身為雲端範本設計人員,您可以使用輸入參數,以便使用者可以在請求時進行自訂選取。

輸入的運作方式

使用者提供輸入時,您不再需要儲存多個僅有細微差別的範本複本。此外,輸入可以準備用於第 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: ''
可選輸入

將輸入傳送到 vRealize Orchestrator

若要為 vRealize Orchestrator 動作提供雲端範本輸入,請執行以下步驟。對於 vRealize Orchestrator 動作,「輸入」表單比直接在雲端範本代碼中輸入更易於使用。

  1. 在與 vRealize Automation 整合的 vRealize Orchestrator 執行個體中,驗證所需動作是否存在。
  2. Cloud Assembly 的雲端範本設計頁面中,移至輸入索引標籤,然後按一下以新增輸入。
  3. 選取類型,然後選取外部來源
  4. 在 [動作] 旁邊,按一下選取按鈕。
  5. 使用 [動作] 搜尋欄位尋找並選取 vRealize Orchestrator 動作。
  6. 輸入或選取任何動作參數。

儲存並建立輸入後,該輸入將作為 $dynamicDefault 輸入顯示在雲端範本代碼中。例如:

inputs:
  backupnetwork:
    type: string
    $dynamicDefault: /data/vro-actions/com.insanpaolo/getBackupNetworkVLAN?network={{abcdef123456}}&tenant={{abcdef123456}}

輸入內容清單

內容 說明
const 與 oneOf 搭配使用。實際值與易記標題相關聯。
預設值 輸入的預先填入值。

預設值必須為正確的類型。請勿輸入單字做為整數的預設值。

說明 輸入的使用者說明文字。
已加密

是否對使用者輸入的輸入進行加密 (true 或 false)。

密碼通常會加密。

此外,還可以建立在多個雲端範本之間可重複使用的加密內容。請參閱密碼 Cloud Assembly 內容

列舉 允許值的下拉式功能表。

使用下列範例做為格式指南。

enum:
      - value 1
      - value 2
format 設定輸入的預期格式。例如,(25/04/19) 支援日期-時間。

允許在 Service Broker 自訂表單中使用日期選擇器。

items 宣告陣列中的項目。支援數字、整數、字串、布林值或物件。
maxItems 陣列中可選取的項目數目上限。
maxLength 字串允許的字元數目上限。

例如,若要限制欄位為 25 個字元,請輸入 maxLength: 25

上限 數字或整數的最大允許值。
minItems 陣列中可選取的項目數目下限。
minLength 字串允許的字元數目下限。
下限 數字或整數的最小允許值。
oneOf 允許使用者輸入表單為不太易記的值 (const) 顯示易記名稱 (title)。如果設定預設值,則設定 const 而非 title。

適用於類型字串、整數和數字。

模式 規則運算式語法中的字串輸入允許的字元。

例如,'[a-z]+''[a-z0-9A-Z@#$]+'

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