テンプレート名
ACS-ESS-UpdateScalingConfigurationImage は、スケーリング設定のイメージを更新します
テンプレートの説明
既存の Elastic Compute Service (ECS) イメージを更新するコマンドを実行し、ECS イメージを作成し、スケーリング設定のイメージ ID を更新します。
テンプレートタイプ
自動
所有者
Alibaba Cloud
入力パラメーター
パラメーター | 説明 | タイプ | 必須 | デフォルト値 | 制限 |
sourceImageId | ソースイメージ ID。 | 文字列 | はい | ||
securityGroupId | セキュリティグループ ID。 | 文字列 | はい | ||
vSwitchId | vSwitch ID。 | 文字列 | はい | ||
commandContent | クラウドアシスタントコマンドの内容。 | 文字列 | はい | ||
scalingConfigurationIds | 変更するスケーリング設定の ID。 | リスト | はい | ||
regionId | リージョン ID。 | 文字列 | いいえ | {{ ACS::RegionId }} | |
targetImageName | 新しいイメージの名前。 | 文字列 | いいえ | UpdateImage_from_{{ sourceImageId }}_on_{{ ACS::ExecutionId }} | |
instanceType | ECS インスタンスタイプ。 | 文字列 | いいえ | ecs.g5.large | 値は正規表現 ecs\.[A-Za-z0-9\.\-]* に一致する必要があります。 |
commandType | クラウドアシスタントコマンドのタイプ。 | 文字列 | いいえ | RunShellScript | |
tags | イメージタグ。 | JSON | いいえ | [] | |
OOSAssumeRole | CloudOps Orchestration Service (OOS) がアシュームする Resource Access Management (RAM) ロール。 | 文字列 | いいえ | "" |
出力パラメーター
パラメーター | 説明 | タイプ |
imageId | 文字列 |
テンプレートを実行するために必要なポリシー
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:CreateImage",
"ecs:DeleteInstance",
"ecs:DescribeCloudAssistantStatus",
"ecs:DescribeImages",
"ecs:DescribeInstances",
"ecs:DescribeInvocationResults",
"ecs:DescribeInvocations",
"ecs:InstallCloudAssistant",
"ecs:RebootInstance",
"ecs:RunCommand",
"ecs:RunInstances",
"ecs:StopInstance"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"ess:ModifyScalingConfiguration"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
詳細
ACS-ESS-UpdateScalingConfigurationImage
テンプレートコンテンツ
FormatVersion: OOS-2019-06-01
Description:
en: ECS クラウドアシスタントを介して既存の ECS イメージを更新し、ECS イメージを作成して、スケーリング設定のイメージ ID を更新します
name-en: ACS-ESS-UpdateScalingConfigurationImage
categories:
- elastic_manage
Parameters:
regionId:
Type: String
Label:
en: リージョン ID
AssociationProperty: RegionId
Default: '{{ ACS::RegionId }}'
targetImageName:
Label:
en: 新しいイメージ名
Type: String
Default: UpdateImage_from_{{ sourceImageId }}_on_{{ ACS::ExecutionId }}
sourceImageId:
Label:
en: ソースイメージ ID
Type: String
AssociationProperty: 'ALIYUN::ECS::Image::ImageId'
AssociationPropertyMetadata:
RegionId: regionId
instanceType:
Label:
en: インスタンスタイプ
Type: String
AssociationProperty: 'ALIYUN::ECS::Instance::InstanceType'
AllowedPattern: ecs\.[A-Za-z0-9\.\-]*
Default: 'ecs.g5.large'
securityGroupId:
Label:
en: セキュリティグループ ID
Type: String
AssociationProperty: 'ALIYUN::ECS::SecurityGroup::SecurityGroupId'
AssociationPropertyMetadata:
RegionId: regionId
vSwitchId:
Label:
en: VSwitch ID
Type: String
AssociationProperty: 'ALIYUN::VPC::VSwitch::VSwitchId'
AssociationPropertyMetadata:
RegionId: regionId
Filters:
- SecurityGroupId: securityGroupId
commandType:
Label:
en: コマンドタイプ
Type: String
AllowedValues:
- RunBatScript
- RunPowerShellScript
- RunShellScript
Default: RunShellScript
commandContent:
Label:
en: コマンド内容
Type: String
AssociationProperty: Code
scalingConfigurationIds:
Label:
en: スケーリング設定 ID
Type: List
tags:
Label:
en: イメージタグ
Type: Json
AssociationProperty: Tags
AssociationPropertyMetadata:
ShowSystem: false
Default: []
OOSAssumeRole:
Label:
en: OOSAssumeRole
Type: String
Default: ''
RamRole: '{{ OOSAssumeRole }}'
Tasks:
- Name: checkNewImageName
Action: ACS::CheckFor
Description:
en: イメージ名が利用可能か確認します
Properties:
Service: ECS
API: DescribeImages
Parameters:
RegionId: '{{ regionId }}'
ImageName: '{{ targetImageName }}'
DesiredValues:
- 0
PropertySelector: TotalCount
- Name: runInstances
Action: ACS::ECS::RunInstances
Description:
en: ソースイメージを使用して ECS インスタンスを作成します
Properties:
regionId: '{{ regionId }}'
imageId: '{{ sourceImageId }}'
instanceType: '{{ instanceType }}'
securityGroupId: '{{ securityGroupId }}'
vSwitchId: '{{ vSwitchId }}'
Outputs:
instanceId:
ValueSelector: instanceIds[0]
Type: String
- Name: installCloudAssistant
Action: ACS::ECS::InstallCloudAssistant
Description:
en: ECS インスタンスにクラウドアシスタントをインストールします
OnError: deleteInstance
Properties:
regionId: '{{ regionId }}'
instanceId: '{{ runInstances.instanceId }}'
- Name: runCommand
Action: ACS::ECS::RunCommand
Description:
en: ECS インスタンスでクラウドアシスタントコマンドを実行します
OnError: deleteInstance
Properties:
regionId: '{{ regionId }}'
commandContent: '{{ commandContent }}'
commandType: '{{ commandType }}'
instanceId: '{{ runInstances.instanceId }}'
- Name: stopInstance
Action: ACS::ECS::StopInstance
Description:
en: ECS インスタンスを停止します
Properties:
regionId: '{{ regionId }}'
instanceId: '{{ runInstances.instanceId }}'
- Name: createImage
Action: ACS::ECS::CreateImage
Description:
en: 指定されたイメージ名とインスタンス ID で新しいイメージを作成します
OnError: deleteInstance
Properties:
regionId: '{{ regionId }}'
imageName: '{{ targetImageName }}'
instanceId: '{{ runInstances.instanceId }}'
tags: '{{tags}}'
Outputs:
imageId:
ValueSelector: imageId
Type: String
- Name: deleteInstance
Action: ACS::ExecuteAPI
Description:
en: ECS インスタンスを削除します
Properties:
Service: ECS
API: DeleteInstance
Risk: Normal
Parameters:
RegionId: '{{ regionId }}'
InstanceId: '{{ runInstances.instanceId }}'
Force: true
- Name: modifyScalingConfiguration
Action: ACS::ExecuteAPI
Description:
en: スケーリング設定を変更します
Properties:
Service: ESS
API: ModifyScalingConfiguration
Parameters:
RegionId: '{{ regionId }}'
ScalingConfigurationId: '{{ ACS::TaskLoopItem }}'
ImageId: '{{ createImage.imageId }}'
Loop:
Items: '{{ scalingConfigurationIds }}'
Outputs:
imageId:
Type: String
Value: '{{ createImage.imageId }}'