Package com.amazonaws.util
Class EC2MetadataUtils
- java.lang.Object
-
- com.amazonaws.util.EC2MetadataUtils
-
public class EC2MetadataUtils extends Object
Utility class for retrieving Amazon EC2 instance metadata.
You can use the data to build more generic AMIs that can be modified by configuration files supplied at launch time. For example, if you run web servers for various small businesses, they can all use the same AMI and retrieve their content from the Amazon S3 bucket you specify at launch. To add a new customer at any time, simply create a bucket for the customer, add their content, and launch your AMI.
More information about Amazon EC2 Metadata- See Also:
- Amazon EC2 User Guide: Instance Metadata
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
EC2MetadataUtils.IAMInfo
Information about the last time the instance profile was updated, including the instance's LastUpdated date, InstanceProfileArn, and InstanceProfileId.static class
EC2MetadataUtils.IAMSecurityCredential
The temporary security credentials (AccessKeyId, SecretAccessKey, SessionToken, and Expiration) associated with the IAM role.static class
EC2MetadataUtils.InstanceInfo
This POJO is a best attempt to capture the instance info which is only guaranteed to be a JSON document per http://docs.aws.amazon.com/AWSEC2/latest /UserGuide/ec2-instance-metadata.html Instance info includes dynamic information about the current instance such as region, instanceId, private IP address, etc.static class
EC2MetadataUtils.NetworkInterface
All of the metada associated with a network interface on the instance.
-
Constructor Summary
Constructors Constructor Description EC2MetadataUtils()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static String
getAmiId()
Get the AMI ID used to launch the instance.static String
getAmiLaunchIndex()
Get the index of this instance in the reservation.static String
getAmiManifestPath()
Get the manifest path of the AMI with which the instance was launched.static List<String>
getAncestorAmiIds()
Get the list of AMI IDs of any instances that were rebundled to created this AMI.static String
getAvailabilityZone()
Get the Availability Zone in which the instance launched.static Map<String,String>
getBlockDeviceMapping()
Get the virtual devices associated with the ami, root, ebs, and swap.static String
getData(String path)
static String
getData(String path, int tries)
static String
getEC2InstanceRegion()
Returns the current region of this running EC2 instance; or null if it is unable to do so.static EC2MetadataUtils.IAMInfo
getIAMInstanceProfileInfo()
Get information about the last time the instance profile was updated, including the instance's LastUpdated date, InstanceProfileArn, and InstanceProfileId.static Map<String,EC2MetadataUtils.IAMSecurityCredential>
getIAMSecurityCredentials()
Returns the temporary security credentials (AccessKeyId, SecretAccessKey, SessionToken, and Expiration) associated with the IAM roles on the instance.static String
getInstanceAction()
Notifies the instance that it should reboot in preparation for bundling.static String
getInstanceId()
Get the ID of this instance.static EC2MetadataUtils.InstanceInfo
getInstanceInfo()
The instance info is only guaranteed to be a JSON document per http://docs .aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.htmlstatic String
getInstanceType()
Get the type of the instance.static List<String>
getItems(String path)
static List<String>
getItems(String path, int tries)
static String
getLocalHostName()
Get the local hostname of the instance.static String
getMacAddress()
Get the MAC address of the instance.static List<EC2MetadataUtils.NetworkInterface>
getNetworkInterfaces()
Get the list of network interfaces on the instance.static String
getPrivateIpAddress()
Get the private IP address of the instance.static List<String>
getProductCodes()
Get the list of product codes associated with the instance, if any.static String
getPublicKey()
Get the public key.static String
getRamdiskId()
Get the ID of the RAM disk specified at launch time, if applicable.static String
getReservationId()
Get the ID of the reservation.static List<String>
getSecurityGroups()
Get the list of names of the security groups applied to the instance.static String
getUserData()
Get the metadata sent to the instance
-
-
-
Method Detail
-
getAmiId
public static String getAmiId()
Get the AMI ID used to launch the instance.
-
getAmiLaunchIndex
public static String getAmiLaunchIndex()
Get the index of this instance in the reservation.
-
getAmiManifestPath
public static String getAmiManifestPath()
Get the manifest path of the AMI with which the instance was launched.
-
getAncestorAmiIds
public static List<String> getAncestorAmiIds()
Get the list of AMI IDs of any instances that were rebundled to created this AMI. Will only exist if the AMI manifest file contained an ancestor-amis key.
-
getInstanceAction
public static String getInstanceAction()
Notifies the instance that it should reboot in preparation for bundling. Valid values: none | shutdown | bundle-pending.
-
getInstanceId
public static String getInstanceId()
Get the ID of this instance.
-
getInstanceType
public static String getInstanceType()
Get the type of the instance.
-
getLocalHostName
public static String getLocalHostName()
Get the local hostname of the instance. In cases where multiple network interfaces are present, this refers to the eth0 device (the device for which device-number is 0).
-
getMacAddress
public static String getMacAddress()
Get the MAC address of the instance. In cases where multiple network interfaces are present, this refers to the eth0 device (the device for which device-number is 0).
-
getPrivateIpAddress
public static String getPrivateIpAddress()
Get the private IP address of the instance. In cases where multiple network interfaces are present, this refers to the eth0 device (the device for which device-number is 0).
-
getAvailabilityZone
public static String getAvailabilityZone()
Get the Availability Zone in which the instance launched.
-
getProductCodes
public static List<String> getProductCodes()
Get the list of product codes associated with the instance, if any.
-
getPublicKey
public static String getPublicKey()
Get the public key. Only available if supplied at instance launch time.
-
getRamdiskId
public static String getRamdiskId()
Get the ID of the RAM disk specified at launch time, if applicable.
-
getReservationId
public static String getReservationId()
Get the ID of the reservation.
-
getSecurityGroups
public static List<String> getSecurityGroups()
Get the list of names of the security groups applied to the instance.
-
getIAMInstanceProfileInfo
public static EC2MetadataUtils.IAMInfo getIAMInstanceProfileInfo()
Get information about the last time the instance profile was updated, including the instance's LastUpdated date, InstanceProfileArn, and InstanceProfileId.
-
getInstanceInfo
public static EC2MetadataUtils.InstanceInfo getInstanceInfo()
The instance info is only guaranteed to be a JSON document per http://docs .aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.htmlThis method is only a best attempt to capture the instance info as a typed object.
Get an InstanceInfo object with dynamic information about this instance.
-
getEC2InstanceRegion
public static String getEC2InstanceRegion()
Returns the current region of this running EC2 instance; or null if it is unable to do so. The method avoids interpreting other parts of the instance info JSON document to minimize potential failure.The instance info is only guaranteed to be a JSON document per http://docs .aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html
-
getIAMSecurityCredentials
public static Map<String,EC2MetadataUtils.IAMSecurityCredential> getIAMSecurityCredentials()
Returns the temporary security credentials (AccessKeyId, SecretAccessKey, SessionToken, and Expiration) associated with the IAM roles on the instance.
-
getBlockDeviceMapping
public static Map<String,String> getBlockDeviceMapping()
Get the virtual devices associated with the ami, root, ebs, and swap.
-
getNetworkInterfaces
public static List<EC2MetadataUtils.NetworkInterface> getNetworkInterfaces()
Get the list of network interfaces on the instance.
-
getUserData
public static String getUserData()
Get the metadata sent to the instance
-
-