查询云服务器ECS的镜像

本文涉及的产品
轻量应用服务器 2vCPU 1GiB,适用于搭建电商独立站
轻量应用服务器 2vCPU 4GiB,适用于网站搭建
轻量应用服务器 4vCPU 16GiB,适用于搭建游戏自建服
简介: 查询ECS的镜像,针对特定的场景如何查找镜像,包括 1. 查找 Windows的 系统镜像,2.查找 被实例使用着的 镜像 3. 查找 共享 的镜像 (其他人共享给我的)4.查找 带Tag( key=xxx value=yyy) 的镜像

  • 接口名称

    查询镜像源列表:DescribeImages

  • 背景:

    如何查找你所需的镜像 DescribeImages接口查询镜像列表

  • 针对场景做相应的查询

场景1. 查找 Windows的 系统镜像
场景2. 查找 被实例使用着的 镜像
场景3. 查找 共享 的镜像 (其他人共享给我的)
场景4. 查找 Tag key=xxx value=yyy 的镜像

除了您现在看到的这文章,您还可以前往:
您也可以使用 ECS 管理控制台、ECS 命令行工具或开发工具包在 ECS 区域内查询 ECS 系统镜像。

ECS 管理控制台-快照和镜像-镜像
API文档:DescribeImages


下文以Python为示例。

安装ECS Python SDK

首先确保您已经具备Python的Runtime,本文中使用的Python版本为2.7+。

pip install aliyun-python-sdk-ecs
如果提示您没有权限,请切换sudo 继续执行。

sudo pip install aliyun-python-sdk-ecs
本文使用的sdk版本为4.6.3。

使用场景事例

# your access key Id
ak_id = "YOU_ACCESS_KEY_ID"
# your access key secret
ak_secret = "YOU_ACCESS_SECRET"

region_id = "cn-hangzhou"

clt = client.AcsClient(ak_id, ak_secret, region_id)

def _execute_request(request):
    response = _send_request(request)
    if response is None:
        print 'response is None'
        return
    if response.get('Code') is None:
        images = response.get("Images").get('Image')
        totalCount = response.get('TotalCount')
        imageIds = []
        for image  in images :
            imageId = image.get('ImageId')
            imageIds.append(imageId)
        print "ecs images num %s , list is %s"%(totalCount, imageIds)

# send open api request
def _send_request(request):
    request.set_accept_format('json')
    try:
        response_str = clt.do_action(request)
        logging.info(response_str)
        response_detail = json.loads(response_str)
        return response_detail
    except Exception as e:
        logging.error(e)

场景1. 查找 Windows的 系统镜像

如果你开发平台为.Net,建议选择windows的镜像来创建ECS云服务器,系统自带正版激活的,正版激活费用不再收取。注意:512内存不支持选择Windows系统,1G以上内存才能很好支持该系统。

Windows

阿里云提供了8种window系统,涵盖了Server 2008 R2 | Server 2012 R2及 Server 2016 | window Version 1709(不含UI)这几大类操作系统。

Linux

阿里云官方提供的Linux公共镜像:
CentOS | Ubuntu | Debian | SUSE Linux | OpenSUSE | Aliyun Linux | CoreOS | FreeBSD

# describe windows system images .
def describe_images_filter_windows():
    request = DescribeImagesRequest()
    #osType : linux | windows
    request.set_OSType('windows')
    request.set_ImageOwnerAlias('system')
    _execute_request(request)

场景2. 查找 被ECS实例使用着的 镜像

# describe used_by_instance images.
def describe_images_used_by_instance():
    request = DescribeImagesRequest()
    # usage : instance (被实例使用)| none (没被使用)
    request.set_Usage('instance')
    _execute_request(request)

场景3. 查找 共享 的镜像 (其他人共享给我的)

# describe to be shared images.
def describe_images_shared_by_others():
    request = DescribeImagesRequest()
    # 镜像类别:system | self (自己创建)| others (被共享的) | marketplace
    request.set_ImageOwnerAlias('others')
    _execute_request(request)

场景4. 查找 Tag key=xxx value=yyy 的镜像

# describe tag(key = value) images.
def describe_images_by_tag():
    request = DescribeImagesRequest()
    # 也可以只根据key过滤:  创建时设定的Tag的key
    request.set_Tag1Key('xxxx')
    # 也可以只根据value过滤:  创建时设定的Tag的value
    request.set_Tag1Value('yyyy')
    _execute_request(request)

完整代码

#  coding=utf-8

# if the python sdk is not install using 'sudo pip install aliyun-python-sdk-ecs'

import json
import logging

from aliyunsdkcore import client
from aliyunsdkecs.request.v20140526.DescribeImagesRequest import DescribeImagesRequest

logging.basicConfig(level=logging.INFO,
                    format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
                    datefmt='%a, %d %b %Y %H:%M:%S')

# your access key Id
ak_id = "YOU_ACCESS_KEY_ID"
# your access key secret
ak_secret = "YOU_ACCESS_SECRET"

region_id = "cn-hangzhou"


clt = client.AcsClient(ak_id, ak_secret, region_id)

# describe windows system images .
def describe_images_filter_windows():
    request = DescribeImagesRequest()
    #osType : linux | windows
    request.set_OSType('windows')
    request.set_ImageOwnerAlias('system')
    _execute_request(request)

# describe used_by_instance images.
def describe_images_used_by_instance():
    request = DescribeImagesRequest()
    # usage : instance (被实例使用)| none (没被使用)
    request.set_Usage('instance')
    _execute_request(request)

# describe to be shared images.
def describe_images_shared_by_others():
    request = DescribeImagesRequest()
    # 镜像类别:system | self (自己创建)| others (被共享的) | marketplace
    request.set_ImageOwnerAlias('others')
    _execute_request(request)

# describe tag(key = value) images.
def describe_images_by_tag():
    request = DescribeImagesRequest()
    # 也可以只根据key过滤:  创建时设定的Tag的key
    request.set_Tag1Key('xxxx')
    # 也可以只根据value过滤:  创建时设定的Tag的value
    request.set_Tag1Value('yyyy')
    _execute_request(request)

def _execute_request(request):
    response = _send_request(request)
    if response is None:
        print 'response is None'
        return
    if response.get('Code') is None:
        images = response.get("Images").get('Image')
        totalCount = response.get('TotalCount')
        imageIds = []
        for image  in images :
            imageId = image.get('ImageId')
            imageIds.append(imageId)
        print "ecs images num %s , list is %s"%(totalCount, imageIds)

# send open api request
def _send_request(request):
    request.set_accept_format('json')
    try:
        response_str = clt.do_action(request)
        logging.info(response_str)
        response_detail = json.loads(response_str)
        return response_detail
    except Exception as e:
        logging.error(e)


if __name__ == '__main__':
    print "hello ecs describe images"
    # describe_images_filter_windows()
    # describe_images_shared_by_others()
    # describe_images_used_by_instance()
    #describe_images_by_tag()
相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
弹性计算 数据挖掘 应用服务中间件
阿里云轻量应用服务器68元与云服务器99元和199元区别及选择参考
目前阿里云有三款特惠云服务器,第一款轻量云服务器2核2G68元一年,第二款经济型云服务器2核2G3M带宽99元1年,第三款通用算力型2核4G5M带宽199元一年。有的新手用户并不是很清楚他们之间的区别,因此不知道如何选择。本文来介绍一下它们之间的区别以及选择参考。
549 87
|
9天前
|
存储 SQL 关系型数据库
服务器数据恢复—云服务器上mysql数据库数据恢复案例
某ECS网站服务器,linux操作系统+mysql数据库。mysql数据库采用innodb作为默认存储引擎。 在执行数据库版本更新测试时,操作人员误误将在本来应该在测试库执行的sql脚本在生产库上执行,导致生产库上部分表被truncate,还有部分表中少量数据被delete。
48 25
|
2天前
|
存储 弹性计算 数据挖掘
阿里云ECS云服务器经济型e实例和通用算力型u1实例区别对比、适用场景和问题解答FAQ
阿里云ECS云服务器的经济型e实例和通用算力型u1实例是开发者和中小企业常用的两种配置。e实例适合中小型网站、开发测试等轻量级应用,性价比高;u1实例性能更优,适用于中小型企业级应用、数据分析等场景。同等配置下,u1实例在网络带宽、云盘IOPS等方面表现更好,价格也相对较高。选择时,个人用户推荐e实例,中小企业则更适合u1实例
|
8天前
|
机器学习/深度学习 人工智能 弹性计算
阿里云服务器入门级、企业级、异构云服务器、弹性裸金属服务器区别参考
在我们选购阿里云服务器时,面对多样化的云服务器架构,如X86计算、ARM计算、GPU/FPGA/ASIC、弹性裸金属服务器以及超级计算集群等,我们需要根据实际需求选择合适的服务器类型。阿里云提供了入门级企业级云服务器、异构云服务器和弹性裸金属服务器等多种产品类型,以满足不同场景下的业务需求。本文将简要介绍这些不同类型的云服务器及其主要适用场景。
|
24天前
|
存储 弹性计算 数据挖掘
阿里云服务器ECS通用算力型u1和ECS经济型e实例性能特点、使用及常见问题解答FAQ
阿里云ECS云服务器的经济型e实例和通用算力型u1实例深受开发者和中小企业青睐。e实例适合中小型网站、开发测试等轻量级应用,采用共享CPU调度模式,性价比高;u1实例则适用于中小型企业级应用,提供更高的性能保障和稳定性,支持固定CPU调度模式,计算性能更稳定。同等配置下,u1实例在网络带宽、IOPS等方面表现更优,价格也相对较高。个人用户可选择e实例,中小企业建议选择u1实例以确保业务稳定性。
|
2月前
|
存储 缓存 固态存储
阿里云服务器租用价格参考,云服务器收费标准与活动价格表参考
本文为大家展示阿里云服务器最新的收费标准与活动价格情况,以供了解和参考。
阿里云服务器租用价格参考,云服务器收费标准与活动价格表参考
|
1月前
|
存储 弹性计算 安全
阿里云服务器经济型e实例4核16G和8核32G特惠云服务器测评参考
阿里云有两款特惠云服务器——4核16G10M带宽和4核32G10M带宽,系统盘都是100G ESSD Entry,价格分别仅需70元1个月和160元1个月。那么,这两款云服务器到底性能如何?适用于哪些场景?是否值得购买?本文将全方位深入测评这两款特惠云服务器,并为您提供详细的购买建议。
|
1月前
|
机器学习/深度学习 弹性计算 缓存
简单聊聊,阿里云2核2G3M带宽云服务器与轻量应用服务器区别及选择参考
2核2G3M带宽云服务器与轻量应用服务器是目前阿里云的活动中,入门级走量型云服务器,轻量云服务器2核2G3M带宽68元一年,经济型e实例云服务器2核2G3M带宽99元1年。同样的配置,对于有的新手用户来说,有必要了解一下他们之间的区别,以及各自的购买和续费相关政策,从而选择更适合自己需求的云服务器。本文为大家简单分析一下我们应该选择哪一款。
|
2月前
|
弹性计算 运维 安全
阿里云轻量应用服务器与ECS的区别及选择指南
轻量应用服务器和云服务器ECS(Elastic Compute Service)是两款颇受欢迎的产品。本文将对这两者进行详细的对比,帮助用户更好地理解它们之间的区别,并根据自身需求做出明智的选择。
|
2月前
|
SQL 弹性计算 安全
阿里云服务器产品详情介绍:云服务器是什么、应用场景、租用流程、使用教程参考
对于很多新手用户来说,阿里云服务器是什么、阿里云服务器可以干嘛、阿里云服务器租用价格表、阿里云服务器新手教程是很多用户对于阿里云服务器最为关心的问题。同时,面对琳琅满目的服务器配置和优惠活动,如何选择最适合自己的服务器并充分利用其资源,成为许多用户面临的难题。本文将从阿里云服务器的定义、应用场景、价格、租用流程以及使用技巧等方面进行全面解析,帮助用户更好地了解和应用阿里云服务器。
174 14

相关产品

  • 云服务器 ECS