没有 Amazon EC2 API 调用来查看 Amazon EC2 实例的“内部”。但是,您可以获取有关用于启动实例的 AMI 的信息。
这是一个使用AWS Command-Line Interface (CLI) 的示例,它对Java 进行类似的API 调用。
$ aws ec2 describe-instances --query 'Reservations[*].Instances[*].ImageId' --filter Name=instance-id,Values=i-xxxxxxxx --output text
ami-d9fe9be3
$ aws ec2 describe-images --image-ids ami-d9fe9be3
{
"Images": [
{
"VirtualizationType": "hvm",
"Name": "amzn-ami-hvm-2014.03.2.x86_64-ebs",
"Hypervisor": "xen",
"ImageOwnerAlias": "amazon",
"SriovNetSupport": "simple",
"ImageId": "ami-d9fe9be3",
"State": "available",
"BlockDeviceMappings": [
{
"DeviceName": "/dev/xvda",
"Ebs": {
"DeleteOnTermination": true,
"SnapshotId": "snap-c90a03fd",
"VolumeSize": 8,
"VolumeType": "standard",
"Encrypted": false
}
}
],
"Architecture": "x86_64",
"ImageLocation": "amazon/amzn-ami-hvm-2014.03.2.x86_64-ebs",
"RootDeviceType": "ebs",
"OwnerId": "137112412989",
"RootDeviceName": "/dev/xvda",
"CreationDate": "2014-06-11T19:46:45.000Z",
"Public": true,
"ImageType": "machine",
"Description": "Amazon Linux AMI x86_64 HVM EBS"
}
]
}
可以从Description 字段中提取信息。但是,请注意,Windows AMI 每月都会被弃用,因为 Microsoft 会提供更新。这意味着旧的 Windows 实例可能无法访问有关其 AMI 的信息。