我正在寻找一种在 Boto3 中从 Canonical 获取最新 Ubuntu 映像的方法。常规的describe_images()没有Canonical的参数。
蒂亚
#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
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
pv
或hvm
ebs-gp2
、ebs-io1
、ebs-standard
或instance-store
来自 Canonical 的 云图像 - Amazon EC2