Resource Orchestration Service (ROS) テンプレートで同じパラメーター値を頻繁に使用する場合は、Operation Orchestration Service (OOS) パラメーター ストアに保存できます。その後、ROS テンプレートでこれらのパラメーターを名前で参照できます。
背景
OOS パラメーター ストアでは、共通パラメーターまたは暗号化パラメーターとして値を保存できます。Key Management Service (KMS) が暗号化パラメーターを暗号化します。このトピックでは、ECS インスタンスグループの作成例を使用して、OOS パラメーター ストアでパラメーターを作成し、ROS テンプレートでそれらを参照する方法を説明します。この例では、次のパラメーターを作成します。
パラメーター | パラメーター名 | カテゴリ | タイプ | 値 |
ImageId | my_image | 共通パラメーター | String | centos_7_9_x64_20G_alibase_2020****.vhd |
SecurityGroupIds | security_group_ids | 共通パラメーター | 文字列リスト | sg-group1,sg-group2 |
Password | Password | 暗号化パラメーター | String | MyPassword1 |
パラメーターの詳細については、「ALIYUN::ECS::InstanceGroup」をご参照ください。
パラメーターは、使用先のスタックと同じリージョンに作成する必要があります。 例えば、中国 (杭州) リージョンにスタックを作成する場合、パラメーターも同じリージョンに作成する必要があります。
ステップ 1: OOS コンソールでのパラメーターの作成
OOS コンソールにログインします。
左側のナビゲーションペインで、パラメーターウェアハウス をクリックします。
上部メニューのリージョンドロップダウンリストで、パラメーターを作成するリージョンを選択します。
説明パラメーターは、スタックと同じリージョンにある必要があります。この例では、中国 (杭州) を選択します。
my_image共通パラメーターを作成します。パラメーターウェアハウス ページで、共通パラメーター タブをクリックし、共通パラメーターの作成 をクリックします。
共通パラメーターの作成 ページで、パラメーター名 と 値 を設定し、パラメータタイプ を選択します。
この例では、次の設定を使用します。
[パラメーター名]: my_image。
[パラメータタイプ]: 文字列。
[値]: centos_7_9_x64_20G_alibase_2020****.vhd.
作成 をクリックします。
パラメーターを作成すると、一般的なパラメーター タブでその名前をクリックし、説明 タブで、名前、バージョン、タイプ、値などの詳細を表示できます。
security_group_ids共通パラメーターを作成します。パラメーターウェアハウス ページで、共通パラメーター タブをクリックし、次に 共通パラメーターの作成 をクリックします。
共通パラメーターの作成 ページで、パラメーター名 と 値 を設定し、パラメータタイプ を選択します。
この例では、次の設定を使用します。
[パラメーター名]: security_group_ids.
[パラメータタイプ]:StringList。
[値]:sg-group1,sg-group2。
作成 をクリックします。
パラメーターの作成後、一般的なパラメーター タブでその名前をクリックし、説明 タブで名前、バージョン、タイプ、値などの詳細を表示できます。
Password暗号化パラメーターを作成します。パラメーターウェアハウス ページで、暗号化パラメーター タブをクリックし、暗号化パラメーターの作成 をクリックします。
暗号化パラメーターの作成 ページで、パラメーター名 と 値 を設定し、Kmsキーid を選択します。
この例では、次の設定を使用します。
[パラメーター名]:パスワード。
[Kmsキーid]:サービスデフォルトの CMK。
[値]:MyPassword1。
作成 をクリックします。
パラメーターの作成後、暗号化パラメーター タブでパラメーター名をクリックし、説明 タブで 値 の横にある 表示 をクリックすると、Password パラメーターの値を表示できます。
ステップ 2: ROS テンプレートの作成
パラメーターを作成した後、ROS テンプレートを作成し、Parameters または Resources セクションでパラメーターを参照できます。
Parametersセクションでのパラメーターの参照Typeは、共通パラメーターの場合はALIYUN::OOS::Parameter::Valueに、暗号化パラメーターの場合はALIYUN::OOS::SecretParameter::Valueに設定します。たとえば、次のコードは、
my_image共通パラメーターの最新バージョンを参照するImageIdという名前のテンプレートパラメーターを定義します。Parameters: ImageId: Type: ALIYUN::OOS::Parameter::Value Default: my_imageパラメーターを
my_image:1のように設定すると、バージョン 1 などの特定のバージョンを参照することもできます。Resourcesセクションでのパラメーターの参照次の形式を使用して、リソースの
Propertiesでパラメーターを参照できます:{{resolve:<parameter-type>:<parameter-name>:<version-number>}}parameter-type(必須)パラメーターのタイプ。有効な値:
oos: 共通パラメーターoos-secret: 暗号化パラメーター
parameter-name(必須)パラメーターの名前。
version-number(オプション)パラメーターのバージョン。このフィールドを指定しない場合は、最新バージョンが使用されます。
たとえば、次のコードは、
ImageIdプロパティでmy_image共通パラメーターの最新バージョンを、PasswordプロパティでPassword暗号化パラメーターのバージョン 2 を参照する方法を示しています。Resources: ECS: Type: ALIYUN::ECS::Instance Properties: ImageId: '{{resolve:oos:my_image}}' Password: '{{resolve:oos-secret:Password:2}}' ...: null
テンプレートでパラメーターを参照する際、ほとんどの組み込み関数を使用できます。詳細については、「Functions」をご参照ください。次の関数はサポートされていません: Ref、Fn::GetAtt、Fn::GetStackOutput、Fn::Calculate
この例では、次のテンプレートを使用します。
ROSTemplateFormatVersion: '2015-09-01'
Parameters:
InstanceType:
Type: String
Default: ecs.c6.large
ImageId:
Type: ALIYUN::OOS::Parameter::Value
Default: my_image
Vpc:
Type: String
VSwitch:
Type: String
Resources:
ECS:
Type: ALIYUN::ECS::InstanceGroup
Properties:
ImageId:
Ref: ImageId
InstanceType:
Ref: InstanceType
VpcId:
Ref: Vpc
VSwitchId:
Ref: VSwitch
SecurityGroupIds: '{{resolve:oos:security_group_ids:1}}'
Password: '{{resolve:oos-secret:Password}}'
MaxAmount: 1
Outputs:
InstanceIds:
Value:
Fn::GetAtt:
- ECS
- InstanceIdsROS は、OOS でのタイプに基づいて、参照されるパラメーターのデータ型を自動的に変換します。パラメーター ストアは、String タイプと文字列リスト タイプをサポートします。文字列リスト タイプのパラメーターを参照すると、ROS はその値をテンプレートで使用するためにリストに変換します。たとえば、security_group_ids パラメーターは、sg-group1,sg-group2 という値を持つ文字列リストです。このパラメーターを使用して ALIYUN::ECS::InstanceGroup リソースを作成すると、ROS は値を ["sg-group1", "sg-group2"] に解決します。
ステップ 3: ROS コンソールでのスタックの作成
ROS コンソールで、ステップ 2 のサンプルテンプレートを使用して、ECS インスタンスグループを作成するスタックを作成します。詳細な手順については、「スタックの作成」をご参照ください。
スタックが作成された後、パラメーターが正しく参照されたことを確認できます。 ROS コンソールの左側のナビゲーションペインで、スタック をクリックします。 スタック ページで、対象のスタックの名前を見つけてクリックします。 スタック詳細ページで、パラメーター タブをクリックして、パラメーターとその解決された値を確認します。