クラウド テンプレート デザイナは、入力パラメータを使用して、ユーザーが申請時にカスタム選択を行えるようにできます。
入力の仕組み
ユーザーが入力するようにすると、違いのわずかなテンプレートの複数のコピーを保存する必要がなくなります。また、入力する場合は、インストール後の作業に対応したテンプレートを準備できます。vRealize Automation の Day 2 更新でクラウド テンプレートの入力を使用する方法を参照してください。
次の入力は、1 つのクラウド テンプレートを 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["プロパティ名"]}
input という語を使用することはできません。
resources:
WebTier:
type: Cloud.Machine
properties:
name: wordpress
flavor: '${input.wp-size}'
image: '${input.wp-image}'
count: '${input.wp-count}'
オプションの入力
通常の入力は必須で、アスタリスクによって示されています。入力をオプションにするには、次のように空のデフォルト値を設定します。
owner: type: string minLength: 0 maxLength: 30 title: Owner Name description: Account Owner default: ''
入力プロパティのリスト
| プロパティ | 説明 |
|---|---|
| const | oneOf とともに使用されます。わかりやすいタイトルに関連付けられている実際の値。 |
| default | 入力に対して事前に設定される値。 デフォルトは、正しいタイプである必要があります。整数のデフォルトとして単語を入力しないでください。 |
| description | 入力のユーザー ヘルプ テキスト。 |
| encrypted | ユーザーが指定した入力を暗号化するかどうかを True または False で指定します。 通常、パスワードは暗号化されます。 複数のクラウド テンプレート間で再利用可能な暗号化されたプロパティを作成することもできます。Cloud Assembly のシークレット プロパティを参照してください。 |
| enum | 使用可能な値のドロップダウン メニュー。 次の例をフォーマット ガイドとして使用します。
enum:
- value 1
- value 2 |
| format | 入力する際に期待されるフォーマットを設定します。たとえば、(25/04/19) は日時をサポートします。 Service Broker カスタム フォームで日付ピッカーを使用できるようにします。 |
| items | アレイ内の項目を宣言します。数値、整数、文字列、ブール値、またはオブジェクトをサポートします。 |
| maxItems | アレイ内の選択可能な項目の最大数。 |
| maxLength | 文字列の場合に許容される最大文字数。 たとえば、フィールドを 25 文字までに制限するには、 |
| maximum | 数値または整数の場合に許容される最大値。 |
| minItems | アレイ内の選択可能な項目の最小数。 |
| minLength | 文字列の場合に許容される最小文字数。 |
| minimum | 数値または整数の場合に許容される最小値。 |
| oneOf | ユーザー入力フォームでわかりにくい値 (const) をわかりやすい名前(タイトル)で表示できるようにします。デフォルト値を設定する場合は、タイトルではなく、定数を設定します。 文字列、整数、および数値のタイプとともに使用します。 |
| pattern | 正規表現の構文で表した、文字列入力に使用可能な文字。 例: |
| properties | オブジェクトの key:value プロパティ ブロックを宣言します。 |
| readOnly | フォーム ラベルのみを指定する際に使用されます。 |
| title | oneOf とともに使用されます。定数値のわかりやすい名前。タイトルは、展開時にユーザー入力フォームに表示されます。 |
| type | 数値、整数、文字列、ブール値、またはオブジェクトを表すデータ タイプ。
重要:
ブール値タイプでは、申請フォームに空白のチェックボックスが追加されます。ボックスをそのままの状態にしておいても、入力は 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