Boto3按名字搜索AWS Image并返回Image的相关参数 (Python)

文章目录

小结

本文记录使用Python脚本和Boto3按名字搜索AWS Image并返回AWS Image的相关参数。

问题及解决

记得操作之前拿到相应的权限:

shell 复制代码
export AWS_ACCESS_KEY_ID="xxxxxxxxxxxxxxxxxxxxxxxxxx"

export AWS_SECRET_ACCESS_KEY="yyyyyyyyyyyyyyyyyyyyyyyyyyyy"

export AWS_SESSION_TOKEN="zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"

使用以下Python脚本:

python 复制代码
#!/bin/python
import json
import boto3

def get_ec2_image():
    ec2_client = boto3.client('ec2')
    describe_images_response = ec2_client.describe_images(
        DryRun=False,
        Owners=[
            'amazon',
        ],
        Filters=[
            {
                'Name': 'name',
                'Values': [
                    'amzn2-ami-ecs-hvm-2.0.20231204-x86_64-ebs',
                ]
            },
        ]
    )
    print("image return: "+ json.dumps(describe_images_response, indent = 4))

以上函数会返回镜像的相关参数,例如使用ImageId来用于创建EC2资源,以下的返回为"ImageId": "ami-0b00532b21d4d18e4"

为了让Json输出更美观,使用了indent = 4这个参数,显示效果如下:

json 复制代码
image return: {
    "Images": [
        {
            "Architecture": "x86_64",
            "CreationDate": "2023-12-04T21:56:34.000Z",
            "ImageId": "ami-0b00532b21d4d18e4",
            "ImageLocation": "amazon/amzn2-ami-ecs-hvm-2.0.20231204-x86_64-ebs",
            "ImageType": "machine",
            "Public": true,
            "OwnerId": "591542846629",
            "PlatformDetails": "Linux/UNIX",
            "UsageOperation": "RunInstances",
            "State": "available",
            "BlockDeviceMappings": [
                {
                    "DeviceName": "/dev/xvda",
                    "Ebs": {
                        "DeleteOnTermination": true,
                        "SnapshotId": "snap-0308eecd299954d62",
                        "VolumeSize": 30,
                        "VolumeType": "gp2",
                        "Encrypted": false
                    }
                }
            ],
            "Description": "Amazon Linux AMI 2.0.20231204 x86_64 ECS HVM GP2",
            "EnaSupport": true,
            "Hypervisor": "xen",
            "ImageOwnerAlias": "amazon",
            "Name": "amzn2-ami-ecs-hvm-2.0.20231204-x86_64-ebs",
            "RootDeviceName": "/dev/xvda",
            "RootDeviceType": "ebs",
            "SriovNetSupport": "simple",
            "VirtualizationType": "hvm",
            "DeprecationTime": "2025-12-04T21:56:34.000Z"
        }
    ],
    "ResponseMetadata": {
        "RequestId": "d7c02b8d-c2f8-49eb-8e45-a897b32d3a7e",
        "HTTPStatusCode": 200,
        "HTTPHeaders": {
            "x-amzn-requestid": "d7c02b8d-c2f8-49eb-8e45-a897b32d3a7e",
            "cache-control": "no-cache, no-store",
            "strict-transport-security": "max-age=31536000; includeSubDomains",
            "content-type": "text/xml;charset=UTF-8",
            "content-length": "1926",
            "date": "Tue, 19 Dec 2023 14:37:16 GMT",
            "server": "AmazonEC2"
        },
        "RetryAttempts": 0
    }
}

参考

stackoverflow: Boto3 EC2 instance filter with tag

相关推荐
电商API_180079052475 分钟前
淘宝商品视频提取API全解析:从授权到落地实战
爬虫·python·信息可视化·数据分析·音视频
计算机程序设计小李同学12 分钟前
基于 Flask 的养猪场信息模拟系统
后端·python·flask
Iridescent112122 分钟前
Iridescent:Day38
python
熬夜敲代码的小N22 分钟前
2026 职场生存白皮书:Gemini Pro 实战使用指南
人工智能·python·ai·职场和发展
Franklin34 分钟前
移植一个Pycharm的复杂项目:
ide·python·pycharm
94621931zyn639 分钟前
外观设置 - Cordova 与 OpenHarmony 混合开发实战
笔记·python
彼岸花开了吗1 小时前
构建AI智能体:六十五、模型智能训练控制:早停机制在深度学习中的应用解析
人工智能·python
BoBoZz191 小时前
3D 医学扫描同时显示患者的皮肤、骨骼的 3D 模型(通过等值面提取),以及三个正交切片
python·vtk·图形渲染·图形处理
一只小鱼儿吖1 小时前
从代理ip的底层逻辑探讨下如何选择代理ip商。
网络·python·网络协议·tcp/ip
山沐与山2 小时前
【设计模式】Python工厂模式与依赖注入:FastAPI的Depends到底在干嘛
python·设计模式·fastapi