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

相关推荐
无垠的广袤1 天前
【工业树莓派 CM0 NANO 单板计算机】本地部署 EMQX
linux·python·嵌入式硬件·物联网·树莓派·emqx·工业物联网
艾莉丝努力练剑1 天前
【Python基础:语法第一课】Python 基础语法详解:变量、类型、动态特性与运算符实战,构建完整的编程基础认知体系
大数据·人工智能·爬虫·python·pycharm·编辑器
gCode Teacher 格码致知1 天前
Python基础教学:如何拼接字符串?-由Deepseek产生
python
还债大湿兄1 天前
阿里通义千问调用图像大模型生成轮动漫风格 python调用
开发语言·前端·python
blank@l1 天前
python测开小工具--日志查询分析工具
python·python接口自动化测试基础·python测试开发·日志查询分析·日志分析统计查询·软件测试工具·argparse模块
hu_nil1 天前
LLMOps-第十三周
python·vllm
空影星1 天前
轻量日记神器RedNotebook,高效记录每一天
python·数据挖掘·数据分析·音视频
搬砖ing换来金砖1 天前
Python入门-Task02
开发语言·python
databook1 天前
告别盲人摸象,数据分析的抽样方法总结
后端·python·数据分析
全栈陈序员1 天前
【Python】基础语法入门(九)—— 代码规范、调试技巧与性能初探
开发语言·python·代码规范