このトピックでは、カスタムテンプレート変数の値を指定する方法について説明します。
テンプレート変数のデータ型
データ型 | 説明 |
String | Elastic Compute Service (ECS) インスタンス名。 |
Integer | ECS システムディスク容量。 |
Boolean | リソースのデプロイメントを無効にするかどうか。 |
Map | リソースタグ情報。 |
List | ECS インスタンスの IP アドレス ホワイトリスト。 |
List<Map> | ECS データディスクリスト。 |
ChargeType | 課金タイプの変数にのみ適用されます。 |
ローカルテンプレート変数を定義する
この例では、ECS テンプレートを使用して、さまざまなタイプの変数の値を指定する方法を説明します。
ECS テンプレートを作成します。次の図は例を示しています。詳細については、「カスタムテンプレートを作成する」をご参照ください。
テンプレートに次の変数を定義します。詳細については、「テンプレート変数を構成する」をご参照ください。
変数
変数値
デフォルト値
count
${count}
1
instance_name
${name}
ecs
system_disk_size
${storage}
40
data_disks
${data_disk}
[]
tags
${tags}
{"cadt":"uat"}
設定が完了したら、マイ ソリューション
ページでテンプレートを見つけ、定義されている変数を確認します。変数タイプには、Integer、String、List<Map>、Map が含まれていることがわかります。
Java コードを使用してテンプレート変数の値を指定する
Java プログラミング言語に精通している場合は、Java コードを使用してテンプレート変数の値を指定できます。次のサンプルコードは例を示しています。
variables = Maps.newHashMap();
// ${name} 変数の値を指定します。
variables.put("${name}", "ecs123");
// ${count} 変数の値を指定します。
variables.put("${count}", "1");
// ${storage} 変数の値を指定します。
variables.put("${storage}", "40");
// ${data_disk} 変数の値を指定します。
List<Map<String, String>> disks = Lists.newArrayList();
Map<String, String> disk1 = Maps.newHashMap();
disk1.put("name", "disk1");
disk1.put("size", "50");
disk1.put("category", "cloud_essd");
disk1.put("performance_level", "PL1");
disk1.put("encrypted", "false");
disks.add(disk1);
Map<String, String> disk2 = Maps.newHashMap();
disk2.put("name", "disk2");
disk2.put("size", "60");
disk2.put("category", "cloud_essd");
disk2.put("performance_level", "PL1");
disk2.put("encrypted", "false");
disks.add(disk2);
variables.put("${data_disk}", JSON.toJSONString(disks));
// ${tags} 変数の値を指定します。
Map<String, String> tags = Maps.newHashMap();
tags.put("role", "dev");
tags.put("project", "abc");
variables.put("${tags}", JSON.toJSONString(tags));
// 変数の値を指定した後、次の API 操作を呼び出してアプリケーションを作成します。
createApplicationRequest = new CreateApplicationRequest()
.setTemplateId(templateId) // 変数を使用するテンプレートの ID。
.setName(appName) // アプリケーションの ID。
.setAreaId(region) // テンプレートが存在するリージョン。
.setVariables(variables) // 変数を渡します。
.setClientToken(UUID.randomUUID().toString());
グローバルテンプレート変数を定義する
この例では、ECS テンプレートを使用します。次のセクションでは、テンプレート変数を構成する方法について説明します。
ECS テンプレートを作成します。次の図は例を示しています。詳細については、「カスタムテンプレートを作成する」をご参照ください。
テンプレートに次の変数を定義します。詳細については、「テンプレート変数を構成する」をご参照ください。
Java コードを使用してテンプレート変数の値を指定します
variables = Maps.newHashMap();
// ${name1} 変数の値を指定します。
variables.put("${name1}", "ecs001");
// ${name2} 変数の値を指定します。
variables.put("${name2}", "ecs002");
// ${sys} 変数の値を指定します。
variables.put("${sys}", "erp");
// ${storage} 変数の値を指定します。
variables.put("${storage}", "80");
// 変数の値を指定した後、次の API 操作を呼び出してアプリケーションを作成します。
createApplicationRequest = new CreateApplicationRequest()
.setTemplateId(templateId) // 変数を使用するテンプレートの ID。
.setName(appName) // アプリケーションの ID。
.setAreaId(region) // テンプレートが存在するリージョン。
.setVariables(variables) // 変数を渡します。
.setClientToken(UUID.randomUUID().toString());
コードを実行すると、ECS インスタンスの名前は ecs001_erp と ecs002-erp になります。両方の ECS インスタンスのシステムディスク容量は 80 GB です。