阿里云提供了镜像族系(ImageFamily)功能用于对一组相关镜像进行分类,可以帮助用户更好地管理和使用镜像。当通过镜像族系创建ECS实例时,系统会自动选取镜像族系内处于可用状态的最新镜像。
功能特性
当前仅支持通过API设置镜像族系创建ECS实例,当您通过RunInstances或CreateInstance接口创建ECS实例时,无需设置镜像ID参数ImageId,只需要设置镜像族系参数ImageFamily,系统会自动使用镜像族系中可用的最新镜像创建ECS实例。具体操作,请参见通过镜像族系创建ECS实例。
说明最新镜像的判断依据为镜像族系内可用镜像的创建时间,创建时间最晚的镜像为最新镜像。例如,您的镜像族系内有两个可用的镜像。一个是2020年01月01日创建的,另一个是2020年01月03日创建的,那么通过该镜像族系创建ECS实例时,系统将默认选择2020年01月03日创建的镜像。
如果您将多个地域的镜像指定为同一镜像族系,则创建ECS实例时会自动匹配该地域的镜像。
镜像族系中的自定义镜像可以设置为弃用或恢复可用。如果您需要使用较旧的镜像版本创建ECS实例,只需要将镜像族系内可用的最新自定义镜像设置为弃用或直接删除,然后通过镜像族系创建ECS实例即可实现。您可以通过控制台弃用镜像或恢复可用镜像,或调用API接口ModifyImageAttribute实现。
您可以调用API接口DescribeImageFromFamily查询指定镜像族系内最新的镜像,也可以通过DescribeImages接口查询某个镜像所属的镜像族系名称。
公共镜像、自定义镜像、共享镜像和社区镜像均支持镜像族系,设置方法请参考下表。
镜像类型
镜像族系说明
默认携带镜像族系信息。更多信息,请参见公共镜像概述。
在创建自定义镜像或者编辑自定义镜像属性时,支持为自定义镜像设置镜像族系。具体操作,请参见设置镜像族系。
说明自定义镜像的镜像族系不允许以acs开头。
复制自定义镜像不会继承镜像族系信息。
共享的源自定义镜像没有设置镜像族系,则共享镜像不携带镜像族系。
共享的源自定义镜像设置了镜像族系,则共享镜像也携带镜像族系。
共享者:自定义镜像的镜像族系
被共享者:
acs:<共享者的阿里云账号ID>:镜像族系名称
发布的自定义镜像没有设置镜像族系,则社区镜像不携带镜像族系。
发布的自定义镜像设置了镜像族系,则社区镜像也携带镜像族系。
镜像提供者:自定义镜像的镜像族系
镜像使用者:
acs:镜像提供者的阿里云账号ID:镜像族系名称
共享镜像和社区镜像族系使用示例:
假设有M、N两个用户:用户M为其两个自定义镜像A1、B1指定了镜像族系A,并把A1发布为社区镜像A2,B1共享给了用户N成为N的共享镜像B2。则:
社区镜像A2:镜像族系名称为
acs:<M用户的UID>:A
共享镜像B2:镜像族系名称也是
acs:<M用户的UID>:A
示例一:
用户N通过RunInstances或CreateInstance创建ECS实例时,如果指定了镜像族系
acs:<M用户的UID>:A
,系统会自动选取A2和B2中最新的可用的镜像来创建实例。示例二:
用户N将共享镜像B2复制为其账号下的自定义镜像B3后,B3不会继承B2的镜像族系值,用户需要重新设置镜像族系。
示例三:
如果A1没有发布为社区镜像,仅共享了B1。则用户N通过引用族系
acs:<M用户的UID>:A
使用共享镜像创建ECS实例时,只能获取到B2,因为A1并没有共享给用户N。示例四:
由于自定义镜像的镜像族系不允许以acs开头,因此不存在用户N将其某个自定义镜像的族系设置为
acs:<M的UID>:A
,与共享镜像、社区镜像隶属于同一个族系的情况。镜像族系的典型使用流程如下图所示。
使用限制
自定义镜像一旦设置了镜像族系,支持修改但不支持删除镜像族系。
同一账号相同地域下,镜像族系名称唯一;不同地域下,允许存在相同的镜像族系名称。
同一个镜像族系内的镜像数量不能超过100个。
同一个地域下,存在镜像的镜像族系数量不能超过100个。
弃用或恢复可用镜像:
仅自定义镜像支持设置为弃用或者恢复可用,其他类型的镜像不支持设置。
如果自定义镜像已经共享给其他用户,需要先取消共享才可以修改为弃用状态。
弃用状态的自定义镜像可以用于创建实例、更换系统盘操作,但是不允许再进行复制或共享。