自动更新镜像任务功能适用于频繁发布应用的场景,您只需在弹性伸缩控制台创建更新任务,执行任务时系统会自动为源ECS实例创建自定义镜像,并自动更新伸缩配置中的镜像,无需您手动更新该镜像。本文为您介绍自动更新伸缩配置中的镜像的方法。

前提条件

更新镜像任务通过OOS服务执行,需要授予OOS服务操作相关资源的权限,请您确保至少满足以下条件之一:

  • 当前账号已拥有操作云服务器ECS、弹性伸缩相关资源的权限。
  • 已为OOS服务创建对应的RAM角色,并授予RAM角色操作云服务器ECS、弹性伸缩相关资源的权限。具体操作,请参见为OOS服务设置RAM权限
说明 建议使用AliyunECSFullAccess和AliyunESSFullAccess权限。

背景信息

  • 本文仅适用于伸缩组类型为ECS的伸缩组,伸缩组类型为ECI的伸缩组不支持更新镜像任务功能。
  • 本文适用于业务应用需要频繁发布的场景。相比较通过手动方式更新伸缩配置中的镜像,采用本文的自动方式操作更便捷,操作链路缩短且无需您过多参与其中,业务等待时间也大幅减少。举例说明具体如下所示:
    场景描述 手动更新镜像 自动更新镜像
    场景:伸缩组类型为ECS的某伸缩组,当前伸缩组的伸缩配置中指定的镜像(例如镜像A),当应用需要发布新版本时,您需要更新当前伸缩组的镜像A为最新版本镜像(例如镜像B)。 手动方式:
    1. 手动为包含新版本应用的ECS实例创建一个自定义镜像(例如镜像B)。具体操作,请参见使用快照创建自定义镜像使用实例创建自定义镜像
    2. 待镜像B手动创建完成后,手动将伸缩组的伸缩配置中指定的镜像A更新为镜像B。

      具体操作,请参见修改单个伸缩配置的镜像

    自动方式:
    1. 通过更新镜像任务功能为包含新版本应用的ECS实例自动创建一个自定义镜像(例如镜像B)。
    2. 待镜像B自动创建完成后,系统自动将伸缩组的伸缩配置中指定的镜像A更新为镜像B。
  • 使用更新镜像任务时,系统自动为源ECS实例创建一个自定义镜像,会收取相应快照容量的费用,遵循云服务器ECS快照的收费标准,更多信息,请参见快照计费

操作步骤

  1. 登录弹性伸缩控制台
  2. 在左侧导航栏中,单击伸缩组管理
  3. 在顶部菜单栏处,选择地域。
  4. 找到待操作的伸缩组,选择一种方式打开伸缩组详情页面。
    • 伸缩组名称/ID列,单击伸缩组ID。
    • 操作列,单击查看详情
  5. 在页面上方,单击实例配置来源页签。
  6. 单击更新镜像任务页签。
  7. 单击更新镜像
  8. 完成更新镜像任务的配置。
    配置项如下表所示。
    配置项 说明
    实例 选择一台ECS实例,为该ECS实例创建自定义镜像并用于更新伸缩配置中的镜像,创建自定义镜像时仅包含系统盘。
    自定义镜像名称 弹性伸缩会自动为创建出来的镜像名称加后缀,防止与定时任务产生的镜像名称重复。例如,自动为创建出来的镜像添加_on_{{ ACS::ExecutionId }}_at_{{ Acs::CurrentDate }}格式的后缀。其中ACS::ExecutionIdAcs::CurrentDate分别表示OOS的执行ID和执行时间。
    配置来源 默认选择伸缩配置
    伸缩组配置ID 选择需要更新镜像的伸缩配置,支持选择多个伸缩配置。
    执行时间 指定执行更新镜像任务的时间:
    • 现在:立即执行任务。
    • 定时:在指定的时间执行任务。您需要继续指定执行时间,精确到分钟。
    • 周期性:选择重复执行更新镜像任务的周期和重复结束的时间,并设置每次开始更新镜像的时间。例如,在2020年8月17日设置以下周期性任务:
      • 重复周期:按月
      • 每月的第21天至第25天执行
      • 开始时间:02:00
      • 重复结束时间:2020年8月26日00:00

      周期性任务的效果:从2020年8月21日至2020年8月25日,每天02:00执行一次更新镜像任务。

    权限来源 选择OOS服务操作相关资源的权限来源:
    • 当前账号的已有权限:使用当前账号已经拥有的权限。
    • 指定RAM角色,使用该角色的权限:继续选择需要OOS服务扮演的RAM角色,使用已授予该RAM角色的权限。
    说明 如果执行时间指定为定时或者周期性,则仅支持通过指定RAM角色来授予权限。
  9. 单击确定
    在您设置的时间自动执行更新镜像任务,您可以在任务列表中查看源ECS实例的信息和任务执行情况。更新镜像任务

执行结果

任务执行成功后,在伸缩配置页签下查看结果。伸缩配置中的镜像名称为UpdateImage_from_<源ECS实例ID>_on_<更新镜像任务ID>的格式,表明已成功更新镜像。更新镜像结果