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

CloudOps Orchestration Service:ACS-ESS-LifeCycleModifyInstanceChargeType

最終更新日:Dec 21, 2025

テンプレート名

ACS-ESS-LifeCycleModifyInstanceChargeType:ライフサイクルフックを使用してインスタンスの課金方法を変更します (スケールアウトアクティビティのみ)

今すぐ実行

テンプレートの説明

ライフサイクルフックを使用してインスタンスの課金方法を変更します。このテンプレートは、スケールアウトアクティビティのみをサポートします。

テンプレートタイプ

自動化

所有者

Alibaba Cloud

入力パラメーター

パラメーター

説明

データ型

必須

デフォルト値

制限

instanceChargeType

インスタンスの新しい課金方法。

String

いいえ

PostPaid

periodUnit

インスタンスの更新期間の単位。

String

いいえ

Month

period

更新期間。

Number

いいえ

1

includeDataDisks

インスタンスにアタッチされているデータディスクの課金方法を変更するかどうかを指定します。

Boolean

いいえ

False

autoRenew

インスタンスの有効期限が切れる前に自動的に更新するかどうかを指定します。

ブール値

いいえ

networkChargeType

ネットワークの新しい課金方法。

String

いいえ

PayByTraffic

lifecycleActionResult

ライフサイクルフックの待機状態が終了した後に実行する操作。

String

いいえ

${lifecycleActionResult}

regionId

リージョン ID。

文字列

いいえ

${regionId}

instanceIds

ECS インスタンス ID のリスト。

リスト

いいえ

${instanceIds}

OOSAssumeRole

OOS RAM ロール

文字列

いいえ

""

rateControl

同時タスク実行のレート

JSON

いいえ

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

lifecycleActionToken

インスタンスに関連付けられたスケーリングアクティビティのトークンです。

String

いいえ

${lifecycleActionToken}

OOSAssumeRole

OOS が引き受ける RAM ロール。

文字列

いいえ

""

出力パラメーター

該当なし。

テンプレートの実行に必要な権限ポリシー

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "ecs:DescribeInstances",
                "ecs:ModifyInstanceAutoRenewAttribute",
                "ecs:ModifyInstanceChargeType",
                "ecs:ModifyInstanceNetworkSpec"
            ],
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": [
                "ess:CompleteLifecycleAction"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

詳細

ACS-ESS-LifeCycleModifyInstanceChargeType

テンプレートコンテンツ

FormatVersion: OOS-2019-06-01
Description:
  ja: スケールアウトアクティビティ中にライフサイクルフックを使用してインスタンスの課金方法を変更します。
  name-ja: ACS-ESS-LifeCycleModifyInstanceChargeType
  categories:
    - elastic_manage
Parameters:
  instanceChargeType:
    Label:
      ja: インスタンスの課金方法
    Type: String
    AllowedValues:
      - PostPaid
      - PrePaid
    Default: PostPaid
  periodUnit:
    Label:
      ja: 期間単位
    Type: String
    AllowedValues:
      - Week
      - Month
    Default: Month
    AssociationPropertyMetadata:
      Visible:
        Condition:
          Fn::Not:
            Fn::Equals:
              - ${instanceChargeType}
              - PostPaid
  period:
    Description:
      ja: インスタンスのサブスクリプション期間です。PeriodUnit が Week の場合、Period の有効値は 1~4 です。PeriodUnit が Month の場合、Period の有効値は 1~12、24、36、48、60 です。
    Label:
      ja: 更新期間
    Type: Number
    Default: 1
    AssociationPropertyMetadata:
      Visible:
        Condition:
          Fn::Not:
            Fn::Equals:
              - ${instanceChargeType}
              - PostPaid
  includeDataDisks:
    Description:
      ja: インスタンスにアタッチされているすべてのデータディスクの課金方法を従量課金からサブスクリプションに変更するかどうかを指定します。
    Label:
      ja: データディスクの変換
    Type: Boolean
    Default: false
    AssociationPropertyMetadata:
      Visible:
        Condition:
          Fn::Not:
            Fn::Equals:
              - ${instanceChargeType}
              - PostPaid
  autoRenew:
    Description:
      ja: インスタンスの有効期限が切れる前に自動更新するかどうかを指定します。
    Label:
      ja: 有効期限前の自動更新を有効化
    Type: Boolean
    Default: false
    AssociationPropertyMetadata:
      Visible:
        Condition:
          Fn::Not:
            Fn::Equals:
              - ${instanceChargeType}
              - PostPaid
  networkChargeType:
    Label:
      ja: ネットワークの課金方法
    Type: String
    AllowedValues:
      - PayByBandwidth
      - PayByTraffic
    Default: PayByTraffic
  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: ECS インスタンス ID のリスト
    Description:
      ja: Elastic Compute Service (ECS) インスタンス ID のリストです。Auto Scaling のデフォルト値 ["${instanceId}"] を使用します。
    Type: List
    Default:
      - ${instanceIds}
  lifecycleHookId:
    Label:
      ja: ライフサイクルフック ID
    Description:
      ja: ライフサイクルフックの ID です。Auto Scaling のデフォルト値 ${lifecycleHookId} を使用します。
    Type: String
    Default: ${lifecycleHookId}
  rateControl:
    Label:
      ja: タスク実行の同時実行率
    Type: Json
    AssociationProperty: RateControl
    Default:
      Mode: Concurrency
      MaxErrors: 0
      Concurrency: 10
  lifecycleActionToken:
    Label:
      ja: インスタンスに関連付けられたスケーリングアクティビティのトークン
    Description:
      ja: インスタンスに関連付けられた特定のスケーリングアクティビティを示すトークンです。Auto Scaling のデフォルト値 ${lifecycleActionToken} を使用します。
    Type: String
    Default: ${lifecycleActionToken}
  OOSAssumeRole:
    Label:
      ja: OOS が引き受ける RAM ロール
    Type: String
    Default: ''
RamRole: '{{ OOSAssumeRole }}'
Tasks:
  - Name: sleepTask
    Action: ACS::Sleep
    Properties:
      Duration: 10s
  - Name: modifyInstanceChargeType
    OnError: CompleteLifecycleActionForAbandon
    Description:
      ja: インスタンスの課金方法を変更します。
    Action: ACS::ECS::ModifyInstanceChargeType
    Properties:
      regionId: '{{ regionId }}'
      instanceId: '{{ ACS::TaskLoopItem }}'
      instanceChargeType: '{{ instanceChargeType }}'
      networkChargeType: '{{ networkChargeType }}'
      period: '{{ period }}'
      periodUnit: '{{ periodUnit }}'
      includeDataDisks: '{{ includeDataDisks }}'
    Loop:
      Items: '{{ instanceIds }}'
      RateControl: '{{ rateControl }}'
  - Name: modifyInstanceAutoRenewAttribute
    OnError: CompleteLifecycleActionForAbandon
    OnSuccess: CompleteLifecycleActionForContinue
    Description:
      ja: インスタンスの自動更新設定を変更します。
    Action: ACS::ECS::ModifyInstanceAutoRenewAttribute
    Properties:
      regionId: '{{ regionId }}'
      instanceId: '{{ ACS::TaskLoopItem }}'
      autoRenew: '{{ autoRenew }}'
      duration: '{{ period }}'
      periodUnit: '{{ periodUnit }}'
    Loop:
      Items: '{{ instanceIds }}'
      RateControl: '{{ rateControl }}'
    When:
      Fn::Equals:
        - '{{ autoRenew }}'
        - true
  - 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: ライフサイクルアクションを ABANDON に設定します。
    Properties:
      Service: ESS
      API: CompleteLifecycleAction
      Parameters:
        RegionId: '{{ regionId }}'
        LifecycleHookId: '{{ lifecycleHookId }}'
        LifecycleActionToken: '{{ lifecycleActionToken }}'
        LifecycleActionResult: '{{ lifecycleActionResult }}'