All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.taimos.dvalin.cloud.aws.properties.EC2MetadataPropertyProvider Maven / Gradle / Ivy

package de.taimos.dvalin.cloud.aws.properties;

import java.util.HashMap;
import java.util.Map;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.amazonaws.SdkClientException;
import com.amazonaws.util.EC2MetadataUtils;

import de.taimos.daemon.properties.IPropertyProvider;

public class EC2MetadataPropertyProvider implements IPropertyProvider {

    private static final Logger LOGGER = LoggerFactory.getLogger(EC2MetadataPropertyProvider.class);

    @Override
    public Map loadProperties() {
        Map data = new HashMap<>();
        try {
            data.put("aws.ec2.instance.id", EC2MetadataUtils.getInstanceId());
            data.put("aws.ec2.instance.type", EC2MetadataUtils.getInstanceType());
            data.put("aws.ec2.privateip", EC2MetadataUtils.getPrivateIpAddress());
            data.put("aws.ec2.ami", EC2MetadataUtils.getAmiId());
            data.put("aws.ec2.az", EC2MetadataUtils.getAvailabilityZone());
            data.put("aws.ec2.region", EC2MetadataUtils.getEC2InstanceRegion());
            data.put("aws.ec2.hostname", EC2MetadataUtils.getLocalHostName());
            data.put("aws.ec2.mac", EC2MetadataUtils.getMacAddress());
            data.put("aws.ec2.account", EC2MetadataUtils.getInstanceInfo().getAccountId());
        } catch (SdkClientException e) {
            LOGGER.debug("Failed to contact EC2 Metadata service", e);
        }
        return data;
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy