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

CloudOps Orchestration Service:ACS-ESS-LifeCycleRunCommand

最終更新日:Dec 21, 2025

テンプレート名

ACS-ESS-LifeCycleRunCommand は、ライフサイクルフックを使用してインスタンス上でコマンドを実行します。

今すぐ実行

テンプレートの説明

ライフサイクルフックを使用して Elastic Compute Service (ECS) インスタンスでコマンドを実行します。

テンプレートの種類

自動

所有者

Alibaba Cloud

入力パラメーター

パラメーター

説明

種類

必須

デフォルト値

制限

commandType

クラウドアシスタントコマンドの種類。

String

いいえ

RunShellScript

commandContent

クラウドアシスタントコマンドの内容。

String

いいえ

echo hello

timeout

タイムアウト期間 (秒)。

Number

いいえ

600

lifecycleActionResult

ライフサイクルフックの待機状態が終了した後の後続のアクション。

String

いいえ

ABANDON

regionId

リージョン ID。

String

いいえ

${regionId}

instanceIds

ECS インスタンスの ID。

List

いいえ

['${instanceIds}']

lifecycleHookId

ライフサイクルフック ID。

String

いいえ

${lifecycleHookId}

lifecycleActionToken

インスタンスに関連付けられている特定のスケーリングアクティビティのトークン。

String

いいえ

${lifecycleActionToken}

rateControl

レートコントロール設定。

Json

いいえ

{'Mode': 'Concurrency', 'MaxErrors': 0, 'Concurrency': 10}

OOSAssumeRole

CloudOps Orchestration Service (OOS) によってアシュームされる Resource Access Management (RAM) ロール。

String

いいえ

OOSServiceRole

出力パラメーター

パラメーター

説明

種類

commandOutputs

List

テンプレートを実行するために必要なポリシー

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "ecs:DescribeInvocationResults",
                "ecs:DescribeInvocations",
                "ecs:RunCommand"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "ess:CompleteLifecycleAction"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

詳細

ACS-ESS-LifeCycleRunCommand

テンプレートコンテンツ

FormatVersion: OOS-2019-06-01
Description:
  ja: ライフサイクルフックを使用して、指定されたスケーリングアクティビティのインスタンスでコマンドを実行します。
  name-ja: ライフサイクルフックを使用してインスタンスでコマンドを実行
  name-en: ACS-ESS-LifeCycleRunCommand
  categories:
    - elastic_manage
Parameters:
  commandType:
    Label:
      ja: コマンドタイプ
    Type: String
    AllowedValues:
      - RunBatScript
      - RunPowerShellScript
      - RunShellScript
    Default: RunShellScript
  commandContent:
    Label:
      ja: コマンド内容
    Type: String
    AssociationProperty: Code
    Default: echo hello
  timeout:
    Label:
      ja: タイムアウト (秒)
    Type: Number
    Default: 600
  lifecycleActionResult:
    Label:
      ja: ライフサイクルアクションの結果
    Description:
      ja: コマンドが失敗した場合に、待機状態が終了した後に実行する次のアクション。
    Type: String
    AllowedValues:
      - ABANDON
      - ROLLBACK
      - CONTINUE
    Default: ABANDON
  regionId:
    Label:
      ja: リージョン ID
    Description:
      ja: リージョン ID。Auto Scaling のデフォルト値 ${regionId} を使用します。
    Type: String
    Default: '${regionId}'
  instanceIds:
    Label:
      ja: インスタンス ID のリスト
    Description:
      ja: ECS インスタンス ID のリスト。Auto Scaling のデフォルト値 ["${instanceId}"] を使用します。
    Type: List
    Default:
      - '${instanceIds}'
  lifecycleHookId:
    Label:
      ja: ライフサイクルフック ID
    Description:
      ja: ライフサイクルフックの ID。Auto Scaling のデフォルト値 ${lifecycleHookId} を使用します。
    Type: String
    Default: '${lifecycleHookId}'
  lifecycleActionToken:
    Label:
      ja: ライフサイクルアクショントークン
    Description:
      ja: インスタンスに関連付けられている特定のスケーリングアクティビティのトークン。Auto Scaling のデフォルト値 ${lifecycleActionToken} を使用します。
    Type: String
    Default: '${lifecycleActionToken}'
  rateControl:
    Label:
      ja: レート制御
    Type: Json
    AssociationProperty: RateControl
    Default:
      Mode: Concurrency
      MaxErrors: 0
      Concurrency: 10
  OOSAssumeRole:
    Label:
      ja: OOS が偽装する RAM ロール
    Type: String
    Default: OOSServiceRole
RamRole: '{{ OOSAssumeRole }}'
Tasks:
  - Name: runCommand
    Action: ACS::ECS::RunCommand
    OnError: CompleteLifecycleActionForAbandon
    OnSuccess: CompleteLifecycleActionForContinue
    Description:
      ja: クラウドアシスタントコマンドを実行します。
    Properties:
      regionId: '{{ regionId }}'
      commandContent: '{{ commandContent }}'
      instanceId: '{{ ACS::TaskLoopItem }}'
      commandType: '{{ commandType }}'
      timeout: '{{ timeout }}'
    Loop:
      RateControl: '{{ rateControl }}'
      Items: '{{ instanceIds }}'
      Outputs:
        commandOutputs:
          AggregateType: Fn::ListJoin
          AggregateField: commandOutput
    Outputs:
      commandOutput:
        Type: String
        ValueSelector: invocationOutput
  - Name: CompleteLifecycleActionForContinue
    Action: 'ACS::ExecuteAPI'
    Description:
      ja: スケーリングアクティビティの待機状態を CONTINUE に変更します。
    OnSuccess: 'ACS::END'
    Properties:
      Service: ESS
      API: CompleteLifecycleAction
      Parameters:
        RegionId: '{{ regionId }}'
        LifecycleHookId: '{{ lifecycleHookId }}'
        LifecycleActionToken: '{{ lifecycleActionToken }}'
        LifecycleActionResult: CONTINUE
  - Name: CompleteLifecycleActionForAbandon
    Action: 'ACS::ExecuteAPI'
    Description:
      ja: 失敗時に、指定された結果でライフサイクルアクションを終了します。
    Properties:
      Service: ESS
      API: CompleteLifecycleAction
      Parameters:
        RegionId: '{{ regionId }}'
        LifecycleHookId: '{{ lifecycleHookId }}'
        LifecycleActionToken: '{{ lifecycleActionToken }}'
        LifecycleActionResult: '{{ lifecycleActionResult }}'
Outputs:
  commandOutputs:
    Type: List
    Value: '{{ runCommand.commandOutputs }}'