包年包月实例到期后提前一天转成按量-阿里云开发者社区

开发者社区> 弹性计算> 正文

包年包月实例到期后提前一天转成按量

简介: 包年包月实例到期后提前一天转成按量

创建模板
1.登陆OOS控制台,找到我的模板,点击创建模板。
image.png

2.选择空白模版。
image.png

3.复制下文提供的模板到YAML栏中,输入模板名称,点击创建模板
image.png

模板内容:
Description: Modify chargetype of prepaid instance charge type.
FormatVersion: OOS-2019-06-01
Parameters:
regionId:

Type: String
Description:
  en: The id of region.
  zh-cn: 地域ID。
AssociationProperty: RegionId
Default: '{{ ACS::RegionId }}'

targets:

Type: Json
AssociationProperty: Targets
AssociationPropertyMetadata:
  ResourceType: 'ALIYUN::ECS::Instance'
  RegionId: regionId

rateControl:

Description:
  en: Concurrency ratio of task execution.
  zh-cn: 任务执行的并发比率。
Type: Json
AssociationProperty: RateControl
Default:
  Mode: Concurrency
  MaxErrors: 0
  Concurrency: 10

OOSAssumeRole:

Description:
  en: The RAM role to be assumed by OOS.
  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: describeInstances

    Action: 'ACS::ExecuteAPI'
    Description:
      zh-cn: Get Instance by expired time.
      en: 根据到期时间过滤实例。
    Properties:
      Service: ECS
      API: DescribeInstances
      Parameters:

    RegionId: '{{ regionId }}'
    InstanceIds: '{{ getInstance.instanceIds }}'
    InstanceChargeType: PrePaid
    Filter3Key: ExpiredStartTime
    Filter4Key: ExpiredEndTime
    Filter3Value:
    'Fn::FormatUTCTime':

    - 'Fn::AddHour':
        - '{{ACS::CurrentUTCTime}}'
        - 24
    - '%Y-%m-%dT00:00Z'

    Filter4Value:
    'Fn::FormatUTCTime':

    - 'Fn::AddHour':
        - '{{ACS::CurrentUTCTime}}'
        - 48
    - '%Y-%m-%dT00:00Z'
    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: PostPaid
    Loop:
      RateControl: '{{ rateControl }}'
      Items: '{{ describeInstances.instanceIds }}'

    Outputs:

InstanceIds:

Type: List
Value: '{{ describeInstances.instanceIds }}'

4、定时执行模版
找到定时运维,点击创建,选择周期性重复执行,设置定时执行的规则
截图所示规则:截止规则结束时间,每天0点0分定时执行制指定模板,建议设置早上8~9点
image.png

5.模板选择,选择上文创建的模板
image.png

6.参数设置,设置目标地域,选择对应的实例。点击立即执行
image.png

7.在执行详情页中可以查看定时执行列表和所操作的资源
image.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
+ 订阅

做技术领先、性能优异、稳如磐石的弹性计算!

官方博客
官网链接