Как проверить учетные данные AWS при запуске приложения Spring Boot? - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть приложение Spring Boot (использующее Java / Maven), которое использует AWS Java SDK.Я хотел бы иметь возможность обнаруживать и обрабатывать любые проблемы с моими учетными данными AWS при запуске приложения.

В настоящее время я получаю трассировку стека во время запуска, когда инициализируется контекст Spring, если (временные) учетные данные AWS устарели.Сообщение об ошибке является грязным, поскольку основной причиной может быть любой из компонентов, связанных с AWS, которые требуют аутентификации.Отказавший bean-компонент может быть на нескольких уровнях глубоко в отношениях внедрения зависимостей.

Я хотел бы заранее выполнить проверку учетных данных во время ошибок запуска и перехвата / обработки.Я просто не знаю изящного способа сделать это.


Вот некоторые из моих зависимостей POM, для справки:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-aws</artifactId>
        <exclusions>
            <exclusion>
                <groupId>com.amazonaws</groupId>
                <artifactId>aws-java-sdk-ec2</artifactId>
            </exclusion>
            <exclusion>
                <groupId>com.amazonaws</groupId>
                <artifactId>aws-java-sdk-s3</artifactId>
            </exclusion>
            <exclusion>
                <groupId>com.amazonaws</groupId>
                <artifactId>aws-java-sdk-cloudformation</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-aws-messaging</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jms</artifactId>
    </dependency>
    <!-- 
    ...
    -->
<dependencies>
...