AWS Секреты для application.properties с лямбда-функциями Springboot - PullRequest
4 голосов
/ 17 июня 2020

Я создал приложение загрузки Spring, в котором я хочу использовать AWS секретов для application.properties. Я использую spring boot 2.2.6.RELEASE и в соответствии с документацией я добавил в свой pom следующие зависимости:

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-context</artifactId>
        <version>2.2.3.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-aws-secrets-manager-config</artifactId>
        <version>2.2.2.RELEASE</version>
    </dependency>

From AWS Служба диспетчера секретов Я создал новый секрет типа «Другие типы секретов »и дал ему имя / secret / myservice . Для тестирования я добавил секретный ключ как environment и значение aws, которое я хочу получить в своем контроллере. Часть, которая мне непонятна, - это запись, которую мне нужно сделать в моем файле bootstrap .yml, поскольку я запутался с инструкциями в документации Spring Cloud AWS. Может ли кто-нибудь предоставить правильные инструкции, так как я не могу правильно использовать эту функцию. Для справки я добавил это в свой bootstrap .yml файл:

aws:
    secretsmanager:
      name: myservice
      prefix: /secret
      enabled: true
      defaultContext: application
      failFast: true
cloud:
    aws:
      region:
        static: us-east-1

и попытался получить значение среды в контроллере:

@RestController
@EnableWebMvc
public class PingController {

 @Value(value = "${environment}")
 private String environment;

 @RequestMapping(path = "/ping", method = RequestMethod.GET)
 public Map<String, String> ping() {
    Map<String, String> pong = new HashMap<>();
    pong.put("pong", "Hello, World!" + "This is " + environment + " environment...");
    return pong;
 }
}
...