全部產品
Search
文件中心

:批量修改ECS執行個體的計費方式

更新時間:Jul 01, 2024

背景

在一些情境下,根據執行個體的使用需求變化需要將訂用帳戶轉隨用隨付或者隨用隨付轉訂用帳戶。針對批量執行個體的情境,一台一台手動操作不僅效率低下還容易出錯。本文將介紹通過CloudOps Orchestration Service執行的方式批量修改ECS執行個體的計費方式。ECS執行個體的計費方式主要有兩種,訂用帳戶隨用隨付

前提條件

  1. 訂用帳戶轉隨用隨付的前提條件,參見訂用帳戶轉隨用隨付

  2. 隨用隨付轉訂用帳戶的前提條件,參見隨用隨付轉訂用帳戶

操作步驟

  1. 登入CloudOps Orchestration Service管理主控台。

  2. 單擊公用模板

  3. 選擇批量修改執行個體的計費方式,對其單擊建立執行Screenshot 2023-04-11 at 16.18.04.png

  4. 單擊下一步,設定參數image.png

  5. 輸入以下的參數:

    1. instanceChargeType:執行個體需要修改的目標計費方式

      1. period:(隨用隨付轉訂用帳戶時必填) 續約時間長度。PeriodUnit=Week時,Period取值:1~4,PeriodUnit=Month時,Period取值:1~12,24, 36, 48, 60。

      2. periodUnit:(隨用隨付轉訂用帳戶時必填) 續約時間長度的時間單位

    2. includeDataDisks:(隨用隨付轉訂用帳戶時必填) 是否將執行個體掛載的所有隨用隨付資料盤一起轉換為訂用帳戶資料盤

    3. networkChargeType:網路需要修改的目標計費方式

    4. regionId:地區ID

    5. targets:目標執行個體

    6. rateControl:(選填) 任務執行的並發比率

    7. OOSAssumeRole:(選填) OOS扮演的RAM角色Screenshot 2023-04-11 at 16.38.42.png

  6. 單擊下一步:確認,單擊確認風險並執行

  7. 執行管理中可查看剛剛建立的執行,若建立執行成功,且執行狀態處於運行中,則表示修改ECS執行個體的計費方式進行中中。

  8. 當執行狀態轉換為成功時,則表示修改ECS執行個體的計費方式成功。可以在ECS執行個體頁面查看修改後的計費方式。

  9. 如需更多瞭解修改ECS執行個體的計費方式過程,當建立執行成功後,您可單擊該執行的詳情,查看執行日誌,即時瞭解執行的進度和狀態。

附錄

公用模板 ACS-ECS-BulkyModifyInstanceChargeType

FormatVersion: OOS-2019-06-01
Description:
  en: Bulky modify instance charge type
  zh-cn: 批量修改執行個體的計費方式
  name-en: ACS-ECS-BulkyModifyInstanceChargeType
  name-zh-cn: 批量修改執行個體的計費方式
  categories:
    - instance_manage
Parameters:
  regionId:
    Type: String
    Label:
      en: RegionId
      zh-cn: 地區ID
    AssociationProperty: RegionId
    Default: '{{ ACS::RegionId }}'
  targets:
    Type: Json
    Label:
      en: TargetInstance
      zh-cn: 目標執行個體
    AssociationProperty: Targets
    AssociationPropertyMetadata:
      ResourceType: ALIYUN::ECS::Instance
      RegionId: regionId
  instanceChargeType:
    Label:
      en: InstanceChargeType
      zh-cn: 執行個體需要修改的目標計費方式
    Type: String
    AllowedValues:
      - PostPaid
      - PrePaid
    Default: PostPaid
  periodUnit:
    Label:
      en: PeriodUnit
      zh-cn: 續約時間長度的時間單位
    Type: String
    AllowedValues:
      - Week
      - Month
    Default: Month
    AssociationPropertyMetadata:
      Visible:
        Condition:
          Fn::Not:
            Fn::Equals:
              - ${instanceChargeType}
              - PostPaid
  period:
    Description:
      en: The period of the instance
      zh-cn: PeriodUnit=Week時,Period取值:1~4,PeriodUnit=Month時,Period取值:1~12,24, 36, 48, 60
    Label:
      en: Period
      zh-cn: 續約時間長度
    Type: Number
    Default: 1
    AssociationPropertyMetadata:
      Visible:
        Condition:
          Fn::Not:
            Fn::Equals:
              - ${instanceChargeType}
              - PostPaid
  includeDataDisks:
    Description:
      en: Specifies whether to change the billing method of all data disks attached to the instance from pay-as-you-go to subscription
      zh-cn: 是否將執行個體掛載的所有隨用隨付資料盤一起轉換為訂用帳戶資料盤
    Label:
      en: IncludeDataDisks
      zh-cn: 是否轉換資料盤
    Type: Boolean
    Default: false
    AssociationPropertyMetadata:
      Visible:
        Condition:
          Fn::Not:
            Fn::Equals:
              - ${instanceChargeType}
              - PostPaid
  networkChargeType:
    Label:
      en: NetworkChargeType
      zh-cn: 網路需要修改的目標計費方式
    Type: String
    AllowedValues:
      - PayByBandwidth
      - PayByTraffic
      - ''
    Default: PayByTraffic
  rateControl:
    Label:
      en: RateControl
      zh-cn: 任務執行的並發比率
    Type: Json
    AssociationProperty: RateControl
    Default:
      Mode: Concurrency
      MaxErrors: 0
      Concurrency: 10
  OOSAssumeRole:
    Label:
      en: OOSAssumeRole
      zh-cn: OOS扮演的RAM角色
    Type: String
    Default: OOSServiceRole
RamRole: '{{ OOSAssumeRole }}'
Tasks:
  - Name: getInstance
    Description:
      en: Views the ECS instances
      zh-cn: 擷取ECS執行個體
    Action: ACS::SelectTargets
    Properties:
      ResourceType: ALIYUN::ECS::Instance
      RegionId: '{{ regionId }}'
      Filters:
        - '{{ targets }}'
    Outputs:
      instanceIds:
        Type: List
        ValueSelector: Instances.Instance[].InstanceId
  - Name: modifyInstanceChargeType
    Description:
      en: Modify instance charge type
      zh-cn: 修改執行個體計費方式
    Action: ACS::ECS::ModifyInstanceChargeType
    Properties:
      regionId: '{{ regionId }}'
      instanceId: '{{ ACS::TaskLoopItem }}'
      instanceChargeType: '{{ instanceChargeType }}'
      networkChargeType: '{{ networkChargeType }}'
      period: '{{ period }}'
      periodUnit: '{{ periodUnit }}'
      includeDataDisks: '{{ includeDataDisks }}'
    Loop:
      RateControl: '{{ rateControl }}'
      Items: '{{ getInstance.instanceIds }}'
Metadata:
  ALIYUN::OOS::Interface:
    ParameterGroups:
      - Parameters:
          - instanceChargeType
          - period
          - periodUnit
          - includeDataDisks
          - networkChargeType
        Label:
          default:
            zh-cn: 計費方式參數選擇
            en: Choose the parameter of instnace charge type
      - Parameters:
          - regionId
          - target
        Label:
          default:
            zh-cn: 選擇執行個體
            en: Select ECS Instances
      - Parameters:
          - rateControl
          - OOSAssumeRole
        Label:
          default:
            zh-cn: 進階選項
            en: Control Options