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 小时前
jupyter添加、删除、查看内核
ide·python·jupyter
埃菲尔铁塔_CV算法3 小时前
图像算法之 OCR 识别算法:原理与应用场景
图像处理·python·计算机视觉
封步宇AIGC4 小时前
量化交易系统开发-实时行情自动化交易-3.4.2.Okex行情交易数据
人工智能·python·机器学习·数据挖掘
封步宇AIGC4 小时前
量化交易系统开发-实时行情自动化交易-2.技术栈
人工智能·python·机器学习·数据挖掘
love_and_hope5 小时前
Pytorch学习--神经网络--完整的模型训练套路
人工智能·pytorch·python·深度学习·神经网络·学习
运维&陈同学5 小时前
【模块一】kubernetes容器编排进阶实战之k8s基础概念
运维·docker·云原生·容器·kubernetes·云计算
在人间负债^5 小时前
基于标签相关性的多标签学习
人工智能·python·chatgpt·大模型·图像类型
科技云报道5 小时前
推动AI云产业向深向实,云·AI·算力创新发展大会即将启幕
云计算
python1566 小时前
使用YOLOv9进行图像与视频检测
开发语言·python·音视频
狂奔solar6 小时前
DQN强化训练agent玩是男人就下xx层小游戏
python·pygame·dqn 强化