Почему интеграция приложения Spring Cloud с хранилищем параметров AWS не возвращает свойства из хранилища параметров? - PullRequest
0 голосов
/ 05 января 2019

Намерение : я работаю над POC, который намеревается использовать хранилище параметров AWS в качестве хранилища свойств. Это будет хранить конфиденциальные свойства приложения в хранилище параметров AWS SSM. Я использую Java 8 с весенней загрузкой / облачная версия 2.

Ресурс : я следовал этому справочнику из весенних документов и

также полная статья Интеграция хранилища параметров AWS с Spring Cloud .Hence пытался использовать

весна-облако-стартер-AWS-параметр-магазин-config.jar

и, следовательно, добавил требуемые зависимости в файл сборки.

Ожидаемый результат:

enter image description here

Фактическая мощность :

enter image description here

Вот снимок с консоли AWS Я пытаюсь получить доступ к показанным ниже параметрам из хранилища параметров AWS

enter image description here

Ниже приведены мои файлы свойств Spring:

application.yml

enter image description here

bootstrap.yml

enter image description here

Я использую maven с приведенными ниже зависимостями в POM.xml

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.1.RELEASE</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-aws-parameter-store-config</artifactId>
        </dependency>
    </dependencies>

Я что-то здесь упускаю ?? Пожалуйста, дайте мне знать, если кто-то уже сталкивался и решил эту проблему.

Я могу поставить и получить параметр из командной строки, просто не могу заставить работать эту Java-библиотеку.

GitHub репо образца, который я пробую -

Ссылка на репозиторий GitHub

1 Ответ

0 голосов
/ 07 января 2019

Я проверил ваше приложение, оно не работало так, как ожидалось, поскольку у меня был файл ~ .aws / config, который приводил к неправильной настройке учетных данных AWS (причина по DefaultAWSCredentialsProviderChain, подробнее здесь ) , поэтому я удалил его и попытался снова, но он не может сказать, что spring не может найти область aws в env, поэтому, очевидно, те, которые указаны в application.yml, не будут использоваться, пока spring не загрузит свойства из хранилища параметров AWS.

Как я это сделал

Я добавил:

        System.setProperty("aws.accessKeyId","My_Key");
        System.setProperty("aws.secretKey","Secret");
        System.setProperty("aws.region","us-east-1");//same region where all your params exist

до SpringApplication.run(DemoApplication.class, args); и затем это работало.

при изменении aws.region на другой, для которого не определено значение params, я получил тот же результат, что и ваш (пустые значения).

убедитесь, что на вашем компьютере или в инстансе EC2 нет конфигурации aws, которая переопределяла бы те, что указаны в вашем приложении.

...