テンプレート・パラメータの使用
Oracle Cloud Stackテンプレート・ファイルを編集し、パラメータを使用してユーザー入力を構成します。
はじめには、「パラメータとは」を参照してください。
一部のパラメータは事前定義されており、すべてのテンプレートで使用できます。 それらを明示的に定義する必要はありません。 「暗黙的なテンプレート・パラメータのリスト」を参照してください。
トピック
基本的な構文
テンプレート・ファイルのparametersノード内のテンプレート・パラメータを定義します。 各パラメータについて、typeとその他のオプションの属性と制約を指定します。 例:
parameters:
dbAdminUser:
label: Database Username
description: The admin user for the new database
type: String
mandatory: true
sensitive: true
maxLength: 15
nodeCount:
label: Database Nodes
description: The number of nodes in the database cluster
type: Number
default: 1
minValue: 1
maxValue: 3パラメータの構成の詳細については、「テンプレート・パラメータの作成」を参照してください。
次のいずれかの形式でallowedValues属性を指定します:
-
一連の値を入力します。 例えば:
[oc1,oc2] -
キーと値のペアを持つ単一のJSONオブジェクトを入力します。 値はユーザーに表示され、
GetParam関数は選択したキーを返します。 例えば:{"10.3.6": "WebLogic Server 11g", "12.1.3": "WebLogic Server 12c"} -
JSONオブジェクトのシーケンスを入力します。各オブジェクトはキー/バリューのペアです。 値はユーザーに表示され、
GetParam関数は選択したキーを返します。 例えば:[{"10.3.6": "WebLogic Server 11g"}, {"12.1.3": "WebLogic Server 12c"}]
スタック名パラメータ
スタック名のパラメータを明示的に定義する必要はありません。 暗黙のパラメータserviceNameを使用して、テンプレート内のスタック名を取得します:
dbSchema: { "Fn::Join": ["-", ["Fn::GetParam": serviceName, DB]] }ただし、スタックの名前(文字数など)に制約を定義する場合は、テンプレートに同じ名前のStringパラメータを作成します:
parameters:
serviceName:
label: Name
type: String
minLength: 10
allowedPattern: "^[A-Z]+[A-Z0-9]"パラメータ・グループ
必要に応じて、関連するテンプレート・パラメータをグループ化することができます。 各パラメータ・グループにはラベルが与えられ、Oracle Cloud Stack作成ウィザードの詳細ページで見出しとして使用されます。
テンプレート・ファイルのparameterGroupsノード内にパラメータ・グループを定義します。 このノードにはシーケンスが含まれています。 シーケンスの各アイテムには、グループのlabelとグループのparametersのリストが含まれています。 例:
parameterGroups:
- label: Database Configuration
parameters: [dbVersion,dbComputeShape,dbSid]
- label: Storage Configuration
parameters: [storageUser,storagePassword]
ヒント:
parametersシーケンスは、次の構文で表すこともできます:parameters:
- storageUser
- storagePassword非表示パラメータ
このトピックはOracle Cloud at Customerには適用されません。
パラメータのvisible属性をfalseに設定すると、Oracle Cloud Stackコンソールに入力フィールドとして表示されません:
parameters:
dbSchema:
...
visible: false
CLIおよびREST APIクライアントは、スタックの作成時に隠しパラメータの値を指定できます。
パスワードのパラメータ
このパラメータ・タイプにより、ユーザーはOracle Cloud Stackコンソールにパスワードを安全に入力できます。 パスワード値はブラウザに表示されません。 ユーザーは、同じパスワード値を2回入力する必要があります。
parameters:
dbPassword:
label: Database Password
type: Password
確認入力フィールドの名前は、テキスト"Confirm"で始まるlabel属性の値です。 上記の例では、確認テキスト・フィールドにデータベース・パスワードの確認というラベルが付きます。
他のパラメータ・タイプとは異なり、パスワード・タイプはデフォルトで大文字と小文字が区別されます。
パスワード値を取得するには、GetParam関数を使用します:
adminPassword: { "Fn::GetParam": dbPassword }SSHのパラメータ
このパラメータ・タイプを使用すると、ユーザーはSecure Shell(SSH)公開キーを入力できます。 Oracle Cloud Stackコンソールのユーザーは、キー値をテキストまたはファイルとして指定したり、Oracle Cloudで値を動的に生成できます。 キーが生成された場合、ユーザーはそれをファイルとしてダウンロードできます。
parameters:
sshkey:
label: SSH Public Key
type: Ssh
GetParam関数を使用して、ユーザー提供または生成されたキー値を取得します:
vmPublicKey: { "Fn::GetParam": sshkey }コンピュート・シェイプ・パラメータ
このパラメータ・タイプを使用すると、コンピュート・シェイプを選択できます。 Oracle Cloudは、Oracle Compute Units(OCPU)の数とクラウド・リソースに割り当てられるメモリーの量を指定する標準シェイプ(oc3、oc2mなど)を定義します。
parameters:
databaseShape:
label: Database Compute Shape
type: ComputeShape
default: oc3
ComputeShapeパラメータ・タイプでallowedValues制約を使用すると、ユーザーが選択する可能性のあるOracle Cloudコンピュート・シェイプを制限できます。 Oracle Cloud Stackコンソールには、リストの各シェイプ・オプションのOCPUの数とRAM量が自動的に表示されます。 allowedValues制約を指定しない場合、ユーザーは標準のコンピュート・シェイプを選択できます。
parameters:
databaseShape:
label: Database Compute Shape
type: ComputeShape
allowedValues: [ oc3, oc4, oc5, oc6, oc1m, oc2m, oc3m, oc4m ]
GetParam関数を使用して、選択したコンピュート・シェイプを取得します:
weblogicShape: { "Fn::GetParam": databaseShape }タグ・パラメータ
このトピックはOracle Cloud at Customerには適用されません。
パラメータ・タイプを使用すると、このクラウド・アカウント内の1つ以上の既存のタグを選択したり、新しいタグを作成したりすることができます。
parameters:
dbTags:
label: Database Tags
type: Tag
各タグは、単純なkeyまたはkey:valueのペアにすることができます。 GetParam関数を使用して、タグをkey:valueオブジェクトのシーケンスとして取得します。 タグに特定の値がない場合は、空の文字列になります。
tags: { "Fn::GetParam": dbTags }ストレージ・パラメータ
このパラメータ・タイプを使用すると、ユーザーはOracle Cloud Infrastructure Object Storage Classicでストレージ・コンテナを指定できます。 Oracle Storage Cloud Serviceの使用のOracle Storage Cloud Serviceについてを参照してください。
parameters:
backupStorage:
label: Cloud Storage
type: Storage
このタイプの各パラメータは、Oracle Cloud Stackコンソールに3つの独立した入力フィールドをもたらします:
-
ストレージ・コンテナのURL
-
このコンテナにアクセスできるOracle Cloudユーザーの名前
-
このOracle Cloudユーザーのパスワード
これらの3つの入力値を取得するには、GetParam関数を使用します。 ストレージ・パラメータの値はJSONオブジェクトです。 このオブジェクト内の値にアクセスするには、ドット表記法を使用します:
-
dbBackupContainer: { "Fn::GetParam": backupStorage.cloudStorageContainer } -
dbBackupUser: { "Fn::GetParam": backupStorage.cloudStorageUser } -
dbBackupPassword: { "Fn::GetParam": backupStorage.cloudStoragePassword }
デフォルトでは、これら3つの入力フィールドのラベルと説明は、テンプレート・パラメータのlabel属性から生成されます。 前の例では、最初のテキスト・フィールドのラベルはCloud Storage - バックアップ・ストレージ・コンテナ"を参照してください。 または、各入力フィールドに独自のラベルと説明を指定することもできます:
parameters:
backupStorage:
label: {"cloudStorageContainer": "Backup Storage Container", "cloudStorageUser": "Storage User", "cloudStoragePassword": "Storage Password"}
description: {"cloudStorageContainer": "Oracle Storage Cloud Service container URL", "cloudStorageUser": "User with access to Oracle Storage Cloud Service", "cloudStoragePassword": "Password for the storage user"}
type: Storage
CLIを使用してストレージ・タイプのパラメータを持つテンプレートからスタックを作成する場合は、パラメータ値をこれらの3つの属性を持つJSONオブジェクトとして入力します。 例:
-p backupStorage:{"cloudStorageContainer":"value","cloudStorageUser":"value","cloudStoragePassword":"value"}リージョン・パラメータ
Oracle Cloud Stackコンソールには、地理的なロケーションなど、使用可能なOracle Cloudリージョンのリストが自動的に表示されます。これは、ユーザーのアカウント設定によって異なります。 デフォルト値は"No Preference"です。この場合、Oracle Cloudは自動的にリージョンを選択します。 リソースが特定のリージョンに割り当てられていない場合、IPネットワークやIP予約などの一部のOracle Cloud機能はサポートされません。
Regionパラメータ・タイプは、コンソールに単一の入力フィールドを表示します:
parameters:
cloudRegion:
label: Cloud Region
type: Region
GetParam関数を使用して、ユーザーが選択したリージョンを取得します:
dbRegion: { "Fn::GetParam": cloudRegion }サービス・パラメータ
Service_Typeパラメータ・タイプを使用すると、既存のOracle Cloudサービス・インスタンスのリストから選択できます。 「タイプ」は、Oracle Cloud Stackにおけるリソース・タイプの名前です(「リソース・タイプのリスト」を参照)。 たとえば、Service_dbaasタイプのパラメータを定義した場合、ユーザーはこのクラウド・アカウント内の既存のOracle Database Cloud Serviceデプロイメントのリストから選択できます:
parameters:
dbaasService:
label: Database
type: Service_dbaas
GetParam関数を使用して、選択したサービス・インスタンスの名前を取得します:
dbService: { "Fn::GetParam" : dbaasService }