如何通过describe_images找到最新的Ubuntu镜像?

问题描述 投票:0回答:2

我正在寻找一种在 Boto3 中从 Canonical 获取最新 Ubuntu 映像的方法。常规的describe_images()没有Canonical的参数。

蒂亚

amazon-web-services boto3 amazon-ami
2个回答
3
投票
    #Canonical id = 099720109477
    images = ec2.describe_images(
        Filters=[
            {
                'Name': 'architecture',
                'Values': ['x86_64',]
            },
            {   'Name': 'root-device-type',
                'Values': ['ebs']
            },
            {
                'Name':  'name',
                'Values': ['ubuntu/images/hvm-ssd/ubuntu-bionic-18.04-amd64-server*']
            }
        ],
        Owners=['099720109477']
    )

    sortedAmis = sorted(images['Images'],
                  key=lambda x: x['CreationDate'],
                  reverse=True)


    lastestAMI = sortedAmis[0]['ImageId']

#返回:ami-01c132a30955dafbb


0
投票

AWS Systems Manager (SSM) 可用于从 Canonical 查询最新的 Ubuntu AMI ID。

import boto3

ssm_client = boto3.client('ssm')
name = "/aws/service/canonical/ubuntu/server/18.04/stable/current/amd64/hvm/ebs-gp2/ami-id"
image_id = ssm_client.get_parameter(Name=name)['Parameter']['Value']

路径遵循以下格式:

ubuntu/$PRODUCT/$RELEASE/stable/current/$ARCH/$VIRT_TYPE/$VOL_TYPE/ami-id
  • 产品:
    server
    server-minimal
  • 发布:
    focal
    20.04
    bionic
    18.04
    xenial
    16.04
  • 拱门:
    amd64
    arm64
  • VIRT_TYPE:
    pv
    hvm
  • VOL_TYPE:
    ebs-gp2
    ebs-io1
    ebs-standard
    instance-store

来自 Canonical 的 云图像 - Amazon EC2

© www.soinside.com 2019 - 2024. All rights reserved.