为持续享受预留实例券的抵扣优惠,建议您在预留实例券到期前设置好自动购买功能。本文介绍如何通过运维编排服务OOS,实现预留实例券到期当天,系统自动购买相同规格的预留实例券。
背景信息
运维编排服务是阿里云提供的云上自动化运维服务,能够自动化管理和执行任务。您可以通过模板定义执行任务、执行顺序、执行输入和输出,然后执行模板完成一组运维操作。更多信息,请参见什么是运维编排服务。
使用OOS可以实现在预留实例券到期当天自动购买相同规格的预留实例券。预留实例券续费成功且已匹配按量付费实例后,即可抵扣按量付费实例账单,为您自动化管理预留实例券,应对按量付费实例的变化提供更多方便。具体操作步骤如下所示:
步骤一:创建模板
- 登录运维编排OOS控制台。
- 在左侧导航栏,单击我的模板。
- 在我的模板页面,单击创建模板。
- 在创建模板页面,配置模板相关信息。
- 在基本信息区域,输入模板名称。
您也可以根据实际业务场景,单击展开更多设置,设置标签信息、选择资源组、输入版本描述信息等。
- 单击YAML页签后,复制批量克隆预留实例券模版内容到YAML栏中。
YAML格式的批量克隆预留实例券模板示例如下所示:
FormatVersion: OOS-2019-06-01
Description:
en: Bulky clone reserved instances
name-en: ACS-ECS-BulkyCloneReservedInstances
categories:
- instance_manage
Parameters:
regionId:
Type: String
Description:
en: The id of region.
AssociationProperty: RegionId
Default: '{{ ACS::RegionId }}'
tags:
Description:
en: 'The resource tag(example:{"k1":"v1","k2":"v2"}).'
Type: Json
AssociationProperty: Tags
period:
Description:
en: The term of the reserved instance.
Type: Number
MinValue: 1
MaxValue: 1
Default: 1
periodUnit:
Description:
en: The term unit of the reserved instance.
Type: String
AllowedValues:
- Month
- Year
Default: Year
OOSAssumeRole:
Description:
en: The RAM role to be assumed by OOS.
Type: String
Default: OOSServiceRole
RamRole: '{{ OOSAssumeRole }}'
Tasks:
- Name: describeReservedInstances
Action: 'ACS::ExecuteAPI'
Description:
en: Query purchased reserved instances.
Properties:
Service: ECS
API: DescribeReservedInstances
Parameters:
RegionId: '{{ regionId }}'
Tags: '{{ tags }}'
Outputs:
reservedInstanceIds:
Type: List
ValueSelector: '.ReservedInstances.ReservedInstance[] | select(.ExpiredTime[0:11] == "{{ACS::CurrentDate}}") | .ReservedInstanceId'
- Name: bulkyCloneReservedInstance
Action: 'ACS::ECS::CloneReservedInstance'
Description:
en: Clone reserved instances.
Properties:
regionId: '{{ regionId }}'
reservedInstanceId: '{{ ACS::TaskLoopItem }}'
period: '{{ period }}'
periodUnit: '{{ periodUnit }}'
Loop:
RateControl:
Mode: Concurrency
MaxErrors: 0
Concurrency: 10
Items: '{{ describeReservedInstances.reservedInstanceIds }}'
Outputs:
reservedInstanceIds:
AggregateType: 'Fn::ListJoin'
AggregateField: reservedInstanceId
Outputs:
reservedInstanceId:
Type: String
ValueSelector: reservedInstanceId
Outputs:
reservedInstanceIds:
Type: List
Value: '{{ bulkyCloneReservedInstance.reservedInstanceIds }}'
- 单击创建模板。
在我的模板页面,您可以查看已创建的模板信息,包括模板名称、模板描述、格式信息等。
步骤二:定时执行模板
- 在左侧导航栏,单击定时运维。
- 在定时运维页面,单击创建。
- 在创建定时运维任务页面,配置定时运维的相关规则。
- 完成定时设置。
参数名称 |
说明 |
定时类型 |
选择周期性重复执行。
|
重复频率 |
选择每天0时0分定时重复执行模板。具体Cron表达如下所示:
关于Cron表达式使用的更多信息,请参见Cron表达式的使用。
|
重复频率的时区 |
根据您所在的地区选择对应时区。例如,选择(GMT+08:00)Asia/Shanghai时区。
|
规则结束时间 |
根据您实际的业务需求,自行选择该规则停止重复执行的时间。例如,选择2022-06-23 18:00:00 结束该规则。您也可以在即将执行时间预览区域下,查看创建的定时运维规则的执行时间是否满足业务需求。
|
- 单击选择模板,在模板列表上方选择我的模板,选中步骤一:创建模板中已创建好的模板。
- 单击设置模板参数,完成相关参数设置。
区域 |
说明 |
regionId |
预留实例券所在的地域,例如华东1(杭州)。 |
tags |
输入模板的资源标签键和标签值。例如:
|
period |
购买预留实例券的时长,默认为1。 |
periodUnit |
购买预留实例券的时长单位,默认为Year。 |
执行使用到的权限的来源 |
选择OOS服务需要扮演RAM角色,以获取执行模板所需的权限。
|
- (可选)单击高级选项,完成高级参数的配置。
保持默认配置,您也可以根据实际业务需要自行配置。例如,配置执行的标签、执行的资源组,或者开启保存模板,以备后续可以在OOS的我的模板中找到并直接重复执行该模板。
- 单击立即执行。
执行结果
执行定时任务后,在左侧导航栏,单击执行管理,在执行任务列表中,您可以查看刚刚创建的执行任务。若创建执行任务成功,且执行状态处于等待中,则表示定时运维任务已创建成功。您可以进一步查看定时任务执行的状态和其他信息。例如,该执行任务的基本信息、历史执行时间、执行计划(即将执行时间预览)、日志等信息。