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

CloudOps Orchestration Service:ACS-ESS-RollingUpdateByUpdateContainerGroup

最終更新日:Jun 23, 2026

テンプレート名

ACS-ESS-RollingUpdateByUpdateContainerGroup

今すぐ実行

テンプレートの説明

コンテナーグループを更新することで、スケーリンググループ内の Elastic Container Instance (ECI) インスタンスに対してローリングアップデートを実行します。

テンプレートタイプ

自動

所有者

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

Containers パラメーターの更新方法です。

String

いいえ

IncrementalUpdate

sourceExecutionId

ロールバック用の OOS 実行 ID です。

String

いいえ

""

batchPauseOption

一時停止ポリシーです。

String

いいえ

Automatic

batchNumber

バッチ数です。

Number

いいえ

5

maxErrors

バッチ実行中に許容される最大エラー数です。

Number

いいえ

0

OOSAssumeRole

OOS が引き受ける 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实例
  ja: コンテナーグループを更新して、スケーリンググループ内の ECI インスタンスをローリングアップデートします
  name-en: ACS-ESS-RollingUpdateByUpdateContainerGroup
  name-zh-cn: 通过更新容器组的方式滚动更新伸缩组内的ECI实例
  name-ja: ACS-ESS-RollingUpdateByUpdateContainerGroup
  categories:
    - elastic_manage
Parameters:
  invokeType:
    Label:
      en: InvokeType
      zh-cn: 操作类型
      ja: 操作タイプ
    Type: String
    AllowedValues:
      - invoke
      - rollback
  scalingGroupId:
    Label:
      en: ScalingGroupId
      zh-cn: 伸缩组ID
      ja: スケーリンググループ ID
    Type: String
  enterProcess:
    Label:
      en: EnterProcess
      zh-cn: 执行开始要暂停的伸缩组流程
      ja: 実行開始時に中断するスケーリンググループのプロセス
    Type: List
    Default:
      - ScaleIn
      - ScaleOut
      - HealthCheck
      - AlarmNotification
      - ScheduledAction
  exitProcess:
    Label:
      en: ExitProcess
      zh-cn: 执行结束要恢复的伸缩组流程
      ja: 実行終了時に再開するスケーリンググループのプロセス
    Type: List
    Default:
      - ScaleIn
      - ScaleOut
      - HealthCheck
      - AlarmNotification
      - ScheduledAction
  containerConfigure:
    Label:
      en: ContainerConfigure
      zh-cn: 用于更新的容器配置
      ja: 更新用のコンテナー設定
    Type: Json
  sourceContainerConfigure:
    Label:
      en: SourceContainerConfigure
      zh-cn: 用于回滚的容器配置
      ja: ロールバック用のコンテナー設定
    Type: Json
    Default: {}
  updateType:
    Label:
      en: ContainersUpdateType
      zh-cn: Containers参数更新方式
      ja: 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:全量更新,更新时需填写相关的所有参数。 如果参数是一个List,不支持单独更新某个item,如果参数是一个结构体,不支持单独更新某个内部成员。 </li>
           <li class="li">IncrementalUpdate:增量更新,更新时可以只填某一需要更新的参数,其它相关参数保持原有不变。 </li>
        </ul>
      ja: >-
        <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
      ja: ロールバック用の OOS 実行 ID
    Type: String
    Default: ''
  scalingConfigurationId:
    Label:
      en: ScalingConfigurationId
      zh-cn: 伸缩配置ID
      ja: スケーリング設定 ID
    Type: String
  batchPauseOption:
    Label:
      en: BatchPauseOption
      zh-cn: 分批模式
      ja: バッチ一時停止オプション
    Type: String
    AllowedValues:
      - Automatic
      - FirstBatchPause
      - EveryBatchPause
    Default: Automatic
  batchNumber:
    Label:
      en: BatchNumber
      zh-cn: 分批执行的批次
      ja: バッチ数
    Type: Number
    MinValue: 1
    MaxValue: 100
    Default: 5
  maxErrors:
    Label:
      en: MaxErrors
      zh-cn: 分批执行的最大错误次数
      ja: バッチ実行の最大エラー数
    Type: Number
    Default: 0
  OOSAssumeRole:
    Label:
      en: OOSAssumeRole
      zh-cn: OOS扮演的RAM角色
      ja: OOS が引き受ける RAM ロール
    Type: String
    Default: ''
RamRole: '{{ OOSAssumeRole }}'
Tasks:
  - Name: choiceNextTask
    Action: ACS::Choice
    Description:
      en: Choose next task by invoke type
      zh-cn: 根据执行的类型选择执行的任务
      ja: 実行タイプに基づいて次のタスクを選択します
    Properties:
      DefaultTask: getInstance
      Choices:
        - When:
            Fn::Equals:
              - rollback
              - '{{ invokeType }}'
          NextTask: getExecutionInstanceIds
  - Name: getInstance
    Description:
      en: Get the ECI instances
      zh-cn: 获取ECI实例
      ja: 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: 检查伸缩组内服务中的实例是否为空
      ja: スケーリンググループ内で稼働中のインスタンスが空であるかどうかを確認します
    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: 根据流程值判断是否暂停流程
      ja: プロセス値に基づいて次のタスクを選択します
    Properties:
      DefaultTask: suspendProcess
      Choices:
        - When:
            Fn::Equals:
              - []
              - '{{ enterProcess }}'
          NextTask: invokeByUpdateContainerGroup
  - Name: suspendProcess
    Action: ACS::ExecuteAPI
    Description:
      en: Suspend process
      zh-cn: 暂停伸缩组流程
      ja: スケーリンググループのプロセスを中断します
    Properties:
      Service: ESS
      API: SuspendProcesses
      Parameters:
        ScalingGroupId: '{{ scalingGroupId }}'
        Process: '{{ enterProcess }}'
  - Name: invokeByUpdateContainerGroup
    Action: ACS::ESS::UpdateContainerGroup
    Description:
      en: Update Container Group
      zh-cn: 更新容器组
      ja: コンテナーグループを更新します
    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: 更新操作修改伸缩配置
      ja: 更新操作のためにスケーリング設定を変更します
    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: 检查伸缩组内服务中的实例是否为空
      ja: スケーリンググループ内で稼働中のインスタンスが空であるかどうかを確認します
    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: 根据流程值判断是否恢复流程
      ja: プロセス値に基づいて次のタスクを選択します
    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: 恢复伸缩组流程
      ja: スケーリンググループのプロセスを再開します
    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
      ja: コンテナーが更新されたインスタンスの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: 获取源执行的参数
      ja: ソース実行のパラメーターを取得します
    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: 暂停伸缩组流程
      ja: スケーリンググループのプロセスを中断します
    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: 回滚更新容器组
      ja: ロールバックのためにコンテナーグループを更新します
    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: 回滚操作修改伸缩配置
      ja: ロールバック操作のためにスケーリング設定を変更します
    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: 根据流程值判断是否恢复流程
      ja: プロセス値に基づいて次のタスクを選択します
    Properties:
      DefaultTask: resumeProcessesWithRollback
      Choices:
        - When:
            Fn::Equals:
              - []
              - '{{ getRollbackProcess.exitProcess }}'
          NextTask: ACS::END
  - Name: resumeProcessesWithRollback
    Action: ACS::ExecuteAPI
    Description:
      en: Resume process
      zh-cn: 恢复伸缩组流程
      ja: スケーリンググループのプロセスを再開します
    Properties:
      Service: ESS
      API: ResumeProcesses
      Parameters:
        ScalingGroupId: '{{ scalingGroupId }}'
        Process: '{{ getRollbackProcess.exitProcess }}'