Введение
Здравствуйте, технологи AWeSome! Большинство из нас так или иначе знакомы с конфигурацией приложений, причем с разным набором профилей в зависимости от среды или технических границ. Конфигурация — это набор параметров, которые влияют на поведение наших приложений.
Сегодня мы узнаем, как получить AWS AppConfig с помощью микросервиса spring boot.
Если вы не знаете, как создать, настроить и развернуть AWS AppConfig через консоль управления AWS, я бы посоветовал вам прочесть эту статью.
Инструмент(ы)/Фреймворк(ы)
IDE — IntelliJ Idea/Eclipse
Язык — Java 8 или выше
Framework — Spring boot
SDK — AWS SDK
AWS Services — AppConfig
Облачный провайдер — Amazon Web Service(AWS)
Инструмент сборки — Maven
Репозиторий
https://github.com/shethapurv/aws/tree/main/aws-app-config-service
Зависимости Maven
Пожалуйста, обратитесь к приведенным ниже зависимостям maven, которые необходимы для получения конфигурации из сервиса AWS AppConfig.
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-appconfig</artifactId>
<version>1.12.272</version>
</dependency>
Важные концепции
Прежде чем приступить к реализации, давайте попробуем разобраться в нескольких концепциях/классах & их значении.
aws-java-sdk-appconfig — Мы будем использовать эту зависимость maven, которая поможет нам подключиться к сервису AWS AppConfig из нашего spring boot приложения.
AmazonAppConfigClient — Мы будем использовать этот класс из AWS SDK для подключения к сервису AWS AppConfig из нашего микросервиса spring boot.
GetConfigurationRequest — мы будем использовать этот класс для создания запроса на получение конфигурации из AWS AppConfig.
Связь микросервисов Spring Boot с AWS AppConfig
Поскольку мы разобрались с важными концепциями, давайте перейдем к реализации.
Реализация
Мы создадим класс AWSAppConfig, который будем использовать для подключения к сервису AWS AppConfig & для получения конфигурации на основе окружения & профиля. Давайте посмотрим,
GetConfigurationRequest.application — устанавливает идентификатор приложения, для которого создается конфигурация.
GetConfigurationRequest.configuration — указывает, какую конфигурацию нужно получить.
GetConfigurationRequest.environment — получение конфигурации для конкретного окружения.
public AWSAppConfig() {
appConfig = AmazonAppConfigClient._builder_().build();
request = new GetConfigurationRequest();
request. **setApplication** ("aws-app-config-service");
request. **setConfiguration** ("dev");
request. **setEnvironment** ("dev");
}
Теперь мы реализуем метод, который должен вернуть нам конфигурацию из AWS AppConfig.
AmazonAppConfigClient.getConfiguration — этот метод получит конфигурацию на основе конфигурации & environment, заданной в запросе.
public String **getConfiguration** () throws UnsupportedEncodingException {
GetConfigurationResult result = **appConfig.getConfiguration** (request);
String message = String._format_("contentType: %s", result.getContentType());
_LOGGER_.info(message);
if (!Objects._equals_("application/json", result.getContentType())) {
throw new IllegalStateException("config is expected to be JSON");
}
String content = new String(result.getContent().array(), "ASCII");
return content;
}
Теперь вы можете подумать, что все это хорошо, но как проверить, действительно ли это получение конфигурации или нет! Не волнуйтесь, давайте проверим это в следующем разделе.
Тестирование
Давайте реализуем конечную точку API, используя AWSAppConfig для получения конфигурации.
@RestController
@RequestMapping(path = " **/aws**", method = RequestMethod._GET_)
public class AWSAppConfigController {
@Autowired
AWSAppConfig awsAppConfig;
@RequestMapping(path = " **/getConfig**", method = RequestMethod._GET_)
public String getAWSAppConfig() throws UnsupportedEncodingException {
return **awsAppConfig.getConfiguration();**
}
}
Теперь запустим приложение & нажмем url localhost:8080/aws/getConfig. Та…да… мы получили конфигурацию из AWS AppConfig.
AWS AppConfig — вывод
Ссылки
https://docs.aws.amazon.com/appconfig/latest/userguide/what-is-appconfig.html
Если этот пост был полезен, пожалуйста, похлопайте несколько раз или проследите, чтобы выразить свою поддержку, которая постоянно поддерживает меня в стремлении делиться своими знаниями.
Учиться, делиться и расти вместе.