CloudOps Orchestration Service (OOS) のパラメーターストアでパラメーターを作成し、ROSテンプレートでパラメーター名を指定することで、Resource Orchestration Service (ROS) テンプレートのパラメーターを効率的に照会できます。
背景情報
OOSパラメーターストアでは、共通パラメーターと暗号化パラメーターを保存できます。暗号化パラメーターは、Key Management Service (KMS) を使用して保存された値を暗号化します。このトピックでは、OOSパラメーターストアを使用してパラメーターを作成し、ROSテンプレートでパラメーターを参照し、テンプレートを使用してスタックを作成する方法について説明します。この例では、Elastic Compute Service (ECS) インスタンスのグループが使用されます。次の表に、作成されるパラメーターを示します。
パラメーター | 名前 | カテゴリ | タイプ | 値 |
ImageId | my_image | 共通パラメーター | String | centos_7_9_x64_20G_alibase_2020****.vhd |
SecurityGroupIds | security_group_ids | 共通パラメーター | StringList | sg-group1,sg-group2 |
Password | Password | 暗号化パラメーター | String | MyPassword1 |
パラメーターの詳細については、「ALIYUN::ECS::InstanceGroup」をご参照ください。
テンプレートで参照するパラメーターを作成する場合は、テンプレートを使用してスタックを作成するリージョンを選択する必要があります。たとえば、[中国 (杭州)] リージョンでテンプレートを使用してスタックを作成する場合は、パラメーターを作成するときに [中国 (杭州)] リージョンを選択する必要があります。
手順 1:OOSコンソールでパラメーターを作成する
OOSコンソール にログオンします。
左側のナビゲーションペインで、[パラメーターストア] をクリックします。
上部のナビゲーションバーで、パラメーターを作成するリージョンを選択します。
説明パラメーターに選択するリージョンは、スタックを作成するリージョンと同じである必要があります。この例では、[中国 (杭州)] リージョンが選択されています。
ImageId 共通パラメーターを作成します。
[パラメーターストア] ページで、[共通パラメーター] タブをクリックし、次に [共通パラメーターの作成] をクリックします。
[共通パラメーターの作成] ページで、[パラメーター名]、[値]、および [パラメーターの種類] を構成します。
この例では、パラメーターは次の値に設定されています。
[パラメーター名]: my_image
[パラメータータイプ]: String
[値]: centos_7_9_x64_20G_alibase_2020****.vhd
[作成] をクリックします。
パラメーターが作成された後、[共通パラメーター] タブでパラメーター名をクリックして、パラメーターの詳細を表示できます。[説明] タブで、名前、バージョン、タイプ、値など、パラメーターの詳細を表示できます。
SecurityGroupIds 共通パラメーターを作成します。
[パラメーターストア] ページで、[共通パラメーター] タブをクリックし、次に [共通パラメーターの作成] をクリックします。
[共通パラメーターの作成] ページで、[パラメーター名]、[値]、および [パラメーターの種類] を構成します。
この例では、パラメーターは次の値に設定されています。
[パラメーター名]: security_group_ids
[パラメータータイプ]: StringList
[値]: sg-group1,sg-group2
[作成] をクリックします。
パラメーターが作成された後、[共通パラメーター] タブでパラメーター名をクリックして、パラメーターの詳細を表示できます。[説明] タブで、名前、バージョン、タイプ、値など、パラメーターの詳細を表示できます。
パスワード 暗号化パラメーターを作成します。
[パラメーターストア] ページで、[暗号化パラメーター] タブをクリックし、次に [暗号化パラメーターの作成] をクリックします。
[暗号化パラメーターの作成] ページで、[パラメーター名]、[値]、および [KMSキー ID] を構成します。
この例では、パラメーターは次の値に設定されています。
[パラメーター名]: Password
[KMSキー ID]: デフォルトサービス CMK
[値]: MyPassword1
[作成] をクリックします。
パラメーターが作成された後、[暗号化パラメーター] タブで Password パラメーター名をクリックして、パラメーターの詳細を表示できます。[説明] タブで、[値] の横にある [表示] をクリックして、Password パラメーターの値を表示できます。
手順 2:ROSテンプレートを作成する
パラメーターを作成したら、ROSテンプレートを作成し、テンプレートの [パラメーター] セクションまたは [リソース] セクションでパラメーターを参照します。
[パラメーター] セクションでパラメーターを参照する
共通パラメーターの場合は、Type パラメーターを ALIYUN::OOS::Parameter::Value に設定します。暗号化パラメーターの場合は、Type パラメーターを ALIYUN::OOS::SecretParameter::Value に設定します。
次のコードは、最新バージョンの ImageId パラメーター値を参照する方法の例を示しています。
Parameters: // パラメーター ImageId: // ImageId Type: ALIYUN::OOS::Parameter::Value // タイプ: ALIYUN::OOS::Parameter::Value Default: my_image // デフォルト: my_imageバージョン 1 のパラメーター値を参照する場合は、コード内の my_image を my_image:1 に置き換えます。
[リソース] セクションでパラメーターを参照する
リソースの [プロパティ] セクションでパラメーターを参照できます。形式:
{{resolve:<パラメータータイプ>:<パラメーターキー>:<パラメーターバージョン>}}。パラメータータイプ
必須。パラメーターのカテゴリ。有効な値:
oos: 共通パラメーター
oos-secret: 暗号化パラメーター
パラメーター名
必須。パラメーターの名前。
パラメーターバージョン
オプション。パラメーターのバージョン。パラメーターバージョンを指定しない場合は、最新バージョンが使用されます。
次のコードは、最新バージョンの ImageId パラメーター値とバージョン 2 の Password パラメーター値を参照する方法の例を示しています。
Resources: // リソース ECS: // ECS Type: ALIYUN::ECS::Instance // タイプ: ALIYUN::ECS::Instance Properties: // プロパティ ImageId: '{{resolve:oos:my_image}}' // ImageId: '{{resolve:oos:my_image}}' Password: '{{resolve:oos-secret:Password:2}}' // Password: '{{resolve:oos-secret:Password:2}}' ...: null // ...: null
テンプレートでパラメーターを参照する場合、Ref、Fn::GetAtt、Fn::GetStackOutput、および Fn::Calculate 関数を除くほとんどの関数がテンプレートで使用可能です。関数の詳細については、「関数」をご参照ください。使用できない関数には、Ref、Fn::GetAtt、Fn::GetStackOutput、および Fn::Calculate が含まれます。
この例では、次のテンプレートが作成されます。
ROSTemplateFormatVersion: '2015-09-01'
Parameters: // パラメーター
InstanceType: // インスタンスタイプ
Type: String // タイプ: 文字列
Default: ecs.c6.large // デフォルト: ecs.c6.large
ImageId: // ImageId
Type: ALIYUN::OOS::Parameter::Value // タイプ: ALIYUN::OOS::Parameter::Value
Default: my_image // デフォルト: my_image
Vpc: // VPC
Type: String // タイプ: 文字列
VSwitch: // VSwitch
Type: String // タイプ: 文字列
Resources: // リソース
ECS: // ECS
Type: ALIYUN::ECS::InstanceGroup // タイプ: ALIYUN::ECS::InstanceGroup
Properties: // プロパティ
ImageId: // ImageId
Ref: ImageId // 参照: ImageId
InstanceType: // インスタンスタイプ
Ref: InstanceType // 参照: InstanceType
VpcId: // VpcId
Ref: Vpc // 参照: Vpc
VSwitchId: // VSwitchId
Ref: VSwitch // 参照: VSwitch
SecurityGroupIds: '{{resolve:oos:security_group_ids:1}}' // セキュリティグループID: '{{resolve:oos:security_group_ids:1}}'
Password: '{{resolve:oos-secret:Password}}' // パスワード: '{{resolve:oos-secret:Password}}'
MaxAmount: 1 // 最大数: 1
Outputs: // 出力
InstanceIds: // インスタンスID
Value: // 値
Fn::GetAtt: // Fn::GetAtt
- ECS // - ECS
- InstanceIds // - InstanceIdsROS は、OOS で定義されているパラメータータイプに基づいて、ROS テンプレートで参照されるパラメーターのタイプを変換します。OOS パラメーターは、String タイプと StringList タイプをサポートしています。StringList タイプのパラメーターが ROS テンプレートで参照される場合、ROS はテンプレートのパラメーターを List タイプに変換します。たとえば、タイプが StringList で値が sg-group1,sg-group2 の SecurityGroupIds パラメーターを使用して ALIYUN::ECS::InstanceGroup タイプのリソースを作成する場合、SecurityGroupIds パラメーターの値は ["sg-group1", "sg-group2"] に変換されます。
手順 3:ROSコンソールでスタックを作成する
ROSコンソール で、手順 2 で作成したテンプレートを使用してスタックを作成します。この例では、テンプレートを使用して ECS インスタンスのグループを作成します。詳細については、「スタックの作成」をご参照ください。
スタックが作成された後、次の操作を実行して、テンプレートでパラメーターが想定どおりに参照されているかどうかを確認できます。ROSコンソールの左側のナビゲーションペインで、[スタック] をクリックします。[スタック] ページで、スタックを見つけ、スタック名をクリックします。表示されるページで、[パラメーター] タブをクリックして、パラメーターとパラメーター値を表示します。