// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: MIT-0
package com.amazonaws.example.library.metadata;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.HashMap;
import java.util.Map;
/**
* Read Metadata from environment variables prefixes with service.metadata
*/
public class EnvironmentConsulMetadataProvider implements ConsulMetaDataProvider {
private static final Logger logger = LoggerFactory.getLogger(EnvironmentConsulMetadataProvider.class);
private static final String METADATA_KEY = "service.metadata";
Map metadata = new HashMap<>();
public EnvironmentConsulMetadataProvider() {
logger.debug("Loading Metadata from Environment");
Map env = System.getenv();
env.forEach((k, v) -> {
if (k.startsWith(METADATA_KEY)) {
logger.debug("Updating metadata with {}", k);
metadata.put(sanitizeKey(k), v);
}
});
}
@Override
public Map getMetadata() {
return this.metadata;
}
private String sanitizeKey(String key) {
return key.substring(METADATA_KEY.length() + 1);
}
}