テンプレート名
ACS-ESS-RollingUpdateByUpdateContainerGroup
テンプレートの説明
スケーリンググループ内の Elastic Container Instance でローリングアップデートを実行するために、コンテナーグループを更新します。
テンプレートタイプ
自動
所有者
Alibaba Cloud
入力パラメーター
パラメーター | 説明 | タイプ | 必須 | デフォルト値 | 制限 |
invokeType | 操作タイプ。 | String | はい | ||
scalingGroupId | スケーリンググループ ID。 | String | はい | ||
containerConfigure | ローリングアップデートを実行するために使用されるコンテナー構成。 | Json | はい | ||
scalingConfigurationId | スケーリング設定 ID。 | String | はい | ||
enterProcess | 実行前に一時停止されるスケーリングプロセス。 | List | いいえ | ['ScaleIn', 'ScaleOut', 'HealthCheck', 'AlarmNotification', 'ScheduledAction'] | |
exitProcess | 実行後に再開されるスケーリングプロセス。 | List | いいえ | ['ScaleIn', 'ScaleOut', 'HealthCheck', 'AlarmNotification', 'ScheduledAction'] | |
sourceContainerConfigure | ロールバックを実行するために使用されるコンテナー構成。 | Json | いいえ | {} | |
updateType | コンテナーパラメーターを更新するために使用されるメソッド。 | String | いいえ | IncrementalUpdate | |
sourceExecutionId | ロールバックされる CloudOps Orchestration Service (OOS) 実行の ID。 | String | いいえ | "" | |
batchPauseOption | 一時停止ポリシー。 | String | いいえ | Automatic | |
batchNumber | バッチ数。 | Number | いいえ | 5 | |
maxErrors | バッチ実行中に許容される最大エラー数。 | Number | いいえ | 0 | |
OOSAssumeRole | OOS によってアサインされる Resource Access Management (RAM) ロール。 | String | いいえ | "" |
出力パラメーター
なし
テンプレートを実行するために必要なポリシー
{
"Version": "1",
"Statement": [
{
"Action": [
"ess:DescribeScalingInstances",
"ess:EnterStandby",
"ess:ExitStandBy",
"ess:ModifyEciScalingConfiguration",
"ess:ResumeProcesses",
"ess:SuspendProcesses"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"eci:DescribeContainerGroups",
"eci:UpdateContainerGroup"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"oos:ListExecutions"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
参照
ACS-ESS-RollingUpdateByUpdateContainerGroup
テンプレートコンテンツ
FormatVersion: OOS-2019-06-01
Description:
en: Rolling update ECI instances in scaling group by update container group
zh-cn: 通过更新容器组的方式滚动更新伸缩组内的ECI实例
name-en: ACS-ESS-RollingUpdateByUpdateContainerGroup
name-zh-cn: 通过更新容器组的方式滚动更新伸缩组内的ECI实例
categories:
- elastic_manage
Parameters:
invokeType:
Label:
en: InvokeType
zh-cn: 操作タイプ
Type: String
AllowedValues:
- invoke
- rollback
scalingGroupId:
Label:
en: ScalingGroupId
zh-cn: スケーリンググループ ID
Type: String
enterProcess:
Label:
en: EnterProcess
zh-cn: 実行開始時に一時停止するスケーリンググループプロセス
Type: List
Default:
- ScaleIn
- ScaleOut
- HealthCheck
- AlarmNotification
- ScheduledAction
exitProcess:
Label:
en: ExitProcess
zh-cn: 実行終了時に再開するスケーリンググループプロセス
Type: List
Default:
- ScaleIn
- ScaleOut
- HealthCheck
- AlarmNotification
- ScheduledAction
containerConfigure:
Label:
en: ContainerConfigure
zh-cn: 更新に使用するコンテナー設定
Type: Json
sourceContainerConfigure:
Label:
en: SourceContainerConfigure
zh-cn: ロールバックに使用するコンテナー設定
Type: Json
Default: {}
updateType:
Label:
en: ContainersUpdateType
zh-cn: Containers パラメーターの更新方法
Description:
en: >-
<ul class="ul">
<li class="li">RenewUpdate: Full update, all related parameters need to be filled in when updating. If the parameter is a List, it does not support updating an item individually, and if the parameter is a structure, it does not support updating an internal member individually. </li>
<li class="li">IncrementalUpdate: Incremental update, when updating, you can only fill in a parameter that needs to be updated, and other related parameters remain unchanged. </li>
</ul>
zh-cn: >-
<ul class="ul">
<li class="li">RenewUpdate:全量更新。更新時には、関連するすべてのパラメーターを入力する必要があります。パラメーターがリストの場合、個々の項目を更新することはできません。パラメーターが構造体の場合、個々の内部メンバーを更新することはできません。</li>
<li class="li">IncrementalUpdate:増分更新。更新時には、更新が必要なパラメーターのみを入力できます。その他の関連パラメーターは変更されません。</li>
</ul>
Type: String
AllowedValues:
- RenewUpdate
- IncrementalUpdate
Default: IncrementalUpdate
sourceExecutionId:
Label:
en: SourceExecutionId
zh-cn: ロールバックに使用する OOS 実行 ID
Type: String
Default: ''
scalingConfigurationId:
Label:
en: ScalingConfigurationId
zh-cn: スケーリング設定 ID
Type: String
batchPauseOption:
Label:
en: BatchPauseOption
zh-cn: バッチモード
Type: String
AllowedValues:
- Automatic
- FirstBatchPause
- EveryBatchPause
Default: Automatic
batchNumber:
Label:
en: BatchNumber
zh-cn: バッチ実行のバッチ数
Type: Number
MinValue: 1
MaxValue: 100
Default: 5
maxErrors:
Label:
en: MaxErrors
zh-cn: バッチ実行の最大エラー回数
Type: Number
Default: 0
OOSAssumeRole:
Label:
en: OOSAssumeRole
zh-cn: OOS がアサインする RAM ロール
Type: String
Default: ''
RamRole: '{{ OOSAssumeRole }}'
Tasks:
- Name: choiceNextTask
Action: ACS::Choice
Description:
en: Choose next task by invoke type
zh-cn: 実行タイプによって次のタスクを選択します
Properties:
DefaultTask: getInstance
Choices:
- When:
Fn::Equals:
- rollback
- '{{ invokeType }}'
NextTask: getExecutionInstanceIds
- Name: getInstance
Description:
en: Get the ECI instances
zh-cn: ECI インスタンスを取得します
Action: ACS::ExecuteApi
Properties:
Service: ESS
API: DescribeScalingInstances
Parameters:
ScalingGroupId: '{{ scalingGroupId }}'
LifecycleState: InService
Outputs:
instanceIds:
Type: List
ValueSelector: ScalingInstances.ScalingInstance[].InstanceId
- Name: whetherTheScalingGroupInstanceIsEmpty
Action: ACS::Choice
Description:
en: Check whether the instance in the service in the scaling group is empty
zh-cn: スケーリンググループ内のサービスのインスタンスが空かどうかを確認します
Properties:
DefaultTask: whetherToSuspendProcess
Choices:
- When:
Fn::Equals:
- []
- '{{ getInstance.instanceIds }}'
NextTask: modifyScalingConfigurationForInvoke
- Name: whetherToSuspendProcess
Action: ACS::Choice
Description:
en: Choose next task by process
zh-cn: プロセス値に基づいて次のタスクを選択します
Properties:
DefaultTask: suspendProcess
Choices:
- When:
Fn::Equals:
- []
- '{{ enterProcess }}'
NextTask: invokeByUpdateContainerGroup
- Name: suspendProcess
Action: ACS::ExecuteAPI
Description:
en: Suspend process
zh-cn: プロセスを一時停止します
Properties:
Service: ESS
API: SuspendProcesses
Parameters:
ScalingGroupId: '{{ scalingGroupId }}'
Process: '{{ enterProcess }}'
- Name: invokeByUpdateContainerGroup
Action: ACS::ESS::UpdateContainerGroup
Description:
en: Update Container Group
zh-cn: コンテナーグループを更新します
Properties:
instanceId: '{{ ACS::TaskLoopItem }}'
scalingGroupId: '{{ scalingGroupId }}'
containerConfigure: '{{ containerConfigure }}'
updateType: '{{ updateType }}'
Loop:
Items: '{{ getInstance.instanceIds }}'
BatchPauseOption: '{{ batchPauseOption }}'
Concurrency:
Fn::CalculateBatch:
- '{{ batchNumber }}'
- '{{ getInstance.instanceIds }}'
- Name: modifyScalingConfigurationForInvoke
Action: ACS::ExecuteAPI
Description:
en: Modify scaling configuration for invoke
zh-cn: 更新操作のためにスケーリング設定を変更します
Properties:
Service: ESS
API: ModifyEciScalingConfiguration
Parameters:
ScalingConfigurationId: '{{ scalingConfigurationId }}'
Container: '{{ containerConfigure }}'
ContainersUpdateType: '{{ updateType }}'
- Name: whetherToResumeProcessesByGroupInstances
Action: ACS::Choice
Description:
en: Check whether the instance in the service in the scaling group is empty
zh-cn: スケーリンググループ内のサービスのインスタンスが空かどうかを確認します
Properties:
DefaultTask: whetherToResumeProcesses
Choices:
- When:
Fn::Equals:
- []
- '{{ getInstance.instanceIds }}'
NextTask: ACS::END
- Name: whetherToResumeProcesses
Action: ACS::Choice
Description:
en: Choose next task by process
zh-cn: プロセス値に基づいて次のタスクを選択します
Properties:
DefaultTask: resumeProcesses
Choices:
- When:
Fn::Equals:
- []
- '{{ exitProcess }}'
NextTask: ACS::END
- Name: resumeProcesses
Action: ACS::ExecuteAPI
OnSuccess: ACS::END
Description:
en: Resume process
zh-cn: プロセスを再開します
Properties:
Service: ESS
API: ResumeProcesses
Parameters:
ScalingGroupId: '{{ scalingGroupId }}'
Process: '{{ exitProcess }}'
- Name: getExecutionInstanceIds
Action: ACS::ExecuteAPI
Description:
en: Get the instance id that has been updated
zh-cn: 更新されたインスタンス ID を取得します
Properties:
Service: OOS
API: ListExecutions
Parameters:
ParentExecutionId: '{{ sourceExecutionId }}'
Outputs:
instanceIds:
Type: List
ValueSelector: .Executions[].Parameters.instanceId
- Name: getRollbackProcess
Action: ACS::ExecuteAPI
Description:
en: Get resource parameters
zh-cn: リソースパラメーターを取得します
Properties:
Service: OOS
API: ListExecutions
Parameters:
ExecutionId: '{{ sourceExecutionId }}'
Outputs:
enterProcess:
Type: List
ValueSelector: Executions[].Parameters.enterProcess[]
exitProcess:
Type: List
ValueSelector: Executions[].Parameters.exitProcess[]
- Name: suspendProcessWithRollBack
Action: ACS::ExecuteAPI
Description:
en: Suspend process
zh-cn: プロセスを一時停止します
Properties:
Service: ESS
API: SuspendProcesses
Parameters:
ScalingGroupId: '{{ scalingGroupId }}'
Process: '{{ getRollbackProcess.enterProcess }}'
- Name: rollbackByUpdateContainerGroup
Action: ACS::ESS::UpdateContainerGroup
Description:
en: Update container group for rollback
zh-cn: ロールバックのためにコンテナーグループを更新します
Properties:
instanceId: '{{ ACS::TaskLoopItem }}'
scalingGroupId: '{{ scalingGroupId }}'
containerConfigure: '{{ sourceContainerConfigure }}'
updateType: '{{ updateType }}'
Loop:
Items: '{{ getExecutionInstanceIds.instanceIds }}'
BatchPauseOption: '{{ batchPauseOption }}'
Concurrency:
Fn::CalculateBatch:
- '{{ batchNumber }}'
- '{{ getExecutionInstanceIds.instanceIds }}'
- Name: modifyScalingConfigurationForRollback
Action: ACS::ExecuteAPI
Description:
en: Modify scaling configuration for rollback
zh-cn: ロールバックのためにスケーリング設定を変更します
Properties:
Service: ESS
API: ModifyEciScalingConfiguration
Parameters:
ScalingConfigurationId: '{{ scalingConfigurationId }}'
Container: '{{ sourceContainerConfigure }}'
ContainersUpdateType: '{{ updateType }}'
- Name: whetherToResumeProcessesWithRollback
Action: ACS::Choice
Description:
en: Choose next task by process
zh-cn: プロセス値に基づいて次のタスクを選択します
Properties:
DefaultTask: resumeProcessesWithRollback
Choices:
- When:
Fn::Equals:
- []
- '{{ getRollbackProcess.exitProcess }}'
NextTask: ACS::END
- Name: resumeProcessesWithRollback
Action: ACS::ExecuteAPI
Description:
en: Resume process
zh-cn: プロセスを再開します
Properties:
Service: ESS
API: ResumeProcesses
Parameters:
ScalingGroupId: '{{ scalingGroupId }}'
Process: '{{ getRollbackProcess.exitProcess }}'