本文为您介绍如何通过资源编排服务ROS(Resource Orchestration Service)为ECS资源指定镜像。

前提条件

进行操作前,请确保您已经注册了阿里云账号。如还未注册,请先完成账号注册

背景信息

当您使用以下四种资源类型创建ECS时,需要为相应的ECS资源指定镜像:
在编辑资源栈模板时,可以通过以下三种方式指定镜像ID(ImageId):
  • 直接指定需要的镜像ID。
  • 通过模糊的方式指定需要的镜像ID。
  • 通过镜像参数的AssociationProperty属性,选择当前可用的镜像。

直接指定需要的镜像ID

如果您明确知道需要的镜像ID,则直接指定该镜像ID即可。

  1. 登录ECS管理控制台
  2. 在左侧导航栏,选择实例与镜像>镜像
  3. 单击公共镜像
    页面上展示当前用户可用的镜像ID,找到需要的镜像ID并进行记录。
  4. 在ROS模板中,指定ImageId作为您需要的某个镜像ID。
    模板创建方法,请参见创建模板
    "ImageId": { "Type": "String", "Description": "Image Id, represents the image resource to startup one ECS instance", "Default": "centos_7_04_64_20G_alibase_201701015.vhd" },

通过模糊的方式指定需要的镜像ID

如果对镜像的版本没有要求(只要是CentOS或者Ubuntu系列即可),则可以使用模糊的方式指定镜像ID。ROS会根据输入的镜像值,匹配最合适的镜像ID。

匹配的规则如下:

  • 如果只指定镜像的系列,例如CentOS、Windows或Ubuntu,则会匹配当前最高版本的64位镜像。
  • 如果指定镜像的同时指定了镜像的大版本号,例如CentOS_6、Ubuntu_14或Windows2008r2,则会选择在CentOS_6中64位的最新版本、Ubuntu_14中64位的最新版本或Windows2008r2中64位的最新版本。
  • 可以使用星号(*)替代镜像ID中的某个字段,例如:centos_6_09_64_20G_alibase*.vhd,则会使用公共镜像中最新的 centos_6_09_64_20G_alibase版本。 在ROS的模板样例中使用模糊匹配的方式。很多涉及到指定镜像的地方,均以CentOS_7或者Ubuntu_14指定。

示例如下:

"ImageId": {
   "Type": "String",
   "Description": "ECS Image",
   "Label": "ECS Image",
   "Default": "cent****"
 },

通过镜像参数的AssociationProperty属性,选择当前可用的镜像

如果在模板中把ECS的镜像ID定义成一个参数,则可以在定义参数时添加AssociationProperty。ROS在做参数解析时,会自动以列表的形式,展示当前地域下有哪些可用的镜像ID,您只需选择即可。

使用AssociationProperty定义参数的示例如下:

   "ImageId": {
      "AssociationProperty":"ALIYUN::ECS::Instance:ImageId",
      "Type" : "String",
      "Default": "centos_7_04_64_20G_alibase_20170****.vhd",
      "Description": " 自动获取可选择的镜像ID"
    }            

ROS除显示可选镜像参数以外,会提示镜像ID参数的默认值,或者AllowedValues中指定的值是否可用。您可以选择合适的镜像ID创建ECS资源。