コード例 #1
0
func fetchRootDeviceName(ami string, conn *ec2.EC2) (aws.StringValue, error) {
	if ami == "" {
		return nil, fmt.Errorf("Cannot fetch root device name for blank AMI ID.")
	}

	log.Printf("[DEBUG] Describing AMI %q to get root block device name", ami)
	req := &ec2.DescribeImagesRequest{ImageIDs: []string{ami}}
	if res, err := conn.DescribeImages(req); err == nil {
		if len(res.Images) == 1 {
			return res.Images[0].RootDeviceName, nil
		} else {
			return nil, fmt.Errorf("Expected 1 AMI for ID: %s, got: %#v", ami, res.Images)
		}
	} else {
		return nil, err
	}
}