AWS AppConfig с Spring Boot


Введение

Здравствуйте, технологи 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

Если этот пост был полезен, пожалуйста, похлопайте несколько раз или проследите, чтобы выразить свою поддержку, которая постоянно поддерживает меня в стремлении делиться своими знаниями.

Учиться, делиться и расти вместе.

Оцените статью
devanswers.ru
Добавить комментарий