すべてのプロダクト
Search
ドキュメントセンター

Cloud Architect Design Tools:テンプレート変数の値を指定する

最終更新日:Jan 18, 2025

このトピックでは、カスタムテンプレート変数の値を指定する方法について説明します。

テンプレート変数のデータ型

データ型

説明

String

Elastic Compute Service (ECS) インスタンス名。

Integer

ECS システムディスク容量。

Boolean

リソースのデプロイメントを無効にするかどうか。

Map

リソースタグ情報。

List

ECS インスタンスの IP アドレス ホワイトリスト。

List<Map>

ECS データディスクリスト。

ChargeType

課金タイプの変数にのみ適用されます。

ローカルテンプレート変数を定義する

この例では、ECS テンプレートを使用して、さまざまなタイプの変数の値を指定する方法を説明します。

  1. ECS テンプレートを作成します。次の図は例を示しています。詳細については、「カスタムテンプレートを作成する」をご参照ください。image

  2. テンプレートに次の変数を定義します。詳細については、「テンプレート変数を構成する」をご参照ください。

    変数

    変数値

    デフォルト値

    count

    ${count}

    1

    instance_name

    ${name}

    ecs

    system_disk_size

    ${storage}

    40

    data_disks

    ${data_disk}

    []

    tags

    ${tags}

    {"cadt":"uat"}

  3. 設定が完了したら、マイ ソリューションimage ページでテンプレートを見つけ、定義されている変数を確認します。変数タイプには、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 テンプレートを使用します。次のセクションでは、テンプレート変数を構成する方法について説明します。

  1. ECS テンプレートを作成します。次の図は例を示しています。詳細については、「カスタムテンプレートを作成する」をご参照ください。essss2

  2. テンプレートに次の変数を定義します。詳細については、「テンプレート変数を構成する」をご参照ください。bbbbb2

  3. 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 です。