使用 SPRING Boot AWS 云包时出错 - 未找到 AWS 凭证配置文件文件

问题描述 投票:0回答:1

我正在使用 SPRING AWS Cloud 版本 1.0.3.RELEASE 包 - 即我们的 SPRING BOOT 可执行 jar 应用程序中的 spring-cloud-aws-core、context、autoconfigure、jdbc 和消息传递。但是,当应用程序初始化时出现错误 - 在给定路径中找不到 AWS 凭证配置文件文件。

具体异常情况如下:

2015-12-11 08:52:45.778 DEBUG 2525 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Creating instance of bean '(inner bean)#566a55ed'
2015-12-11 08:52:45,789 8058 [main] DEBUG org.springframework.beans.BeanUtils -
                                - No property editor [com.amazonaws.auth.profile.ProfilesConfigFileEditor] found for type com.amazonaws.auth.profile.ProfilesConfigFile according to 'Editor' suffix convention
2015-12-11 08:52:45.789 DEBUG 2525 --- [           main] org.springframework.beans.BeanUtils      : No property editor [com.amazonaws.auth.profile.ProfilesConfigFileEditor] found for type com.amazonaws.auth.profile.ProfilesConfigFile according to 'Editor' suffix convention
2015-12-11 08:52:45,793 8062 [main] DEBUG o.s.beans.TypeConverterDelegate -
                                - Construction via String failed for type [com.amazonaws.auth.profile.ProfilesConfigFile]
org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.amazonaws.auth.profile.ProfilesConfigFile]: Constructor threw exception; nested exception is java.lang.IllegalArgumentException: AWS credential profiles file not found in the given path: /opt/wmc/myapp/bin/default
        at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:163) ~[spring-beans-4.2.3.RELEASE.jar!/:4.2.3.RELEASE]
        at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:238) [spring-beans-4.2.3.RELEASE.jar!/:4.2.3.RELEASE]
        at org.springframework.beans.TypeConverterDelegate.convertIfNecessary(TypeConverterDelegate.java:108) [spring-beans-4.2.3.RELEASE.jar!/:4.2.3.RELEASE]
        at org.springframework.beans.TypeConverterSupport.doConvert(TypeConverterSupport.java:64) [spring-beans-4.2.3.RELEASE.jar!/:4.2.3.RELEASE]
        at org.springframework.beans.TypeConverterSupport.convertIfNecessary(TypeConverterSupport.java:47) [spring-beans-4.2.3.RELEASE.jar!/:4.2.3.RELEASE]
        at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:704) [spring-beans-4.2.3.RELEASE.jar!/:4.2.3.RELEASE]
        at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:185) [spring-beans-4.2.3.RELEASE.jar!/:4.2.3.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1143) [spring-beans-4.2.3.RELEASE.jar!/:4.2.3.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1046) [spring-beans-4.2.3.RELEASE.jar!/:4.2.3.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:510) [spring-beans-4.2.3.RELEASE.jar!/:4.2.3.RELEASE]
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:482) [spring-beans-4.2.3.RELEASE.jar!/:4.2.3.RELEASE]
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:299) [spring-beans-4.2.3.RELEASE.jar!/:4.2.3.RELEASE]
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:129) [spring-beans-4.2.3.RELEASE.jar!/:4.2.3.RELEASE]
        at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:382) [spring-beans-4.2.3.RELEASE.jar!/:4.2.3.RELEASE]



Caused by: java.lang.IllegalArgumentException: AWS credential profiles file not found in the given path: /opt/wmc/myapp/bin/default
        at com.amazonaws.auth.profile.internal.ProfilesConfigFileLoader.loadProfiles(ProfilesConfigFileLoader.java:45) ~[aws-java-sdk-core-1.10.36.jar!/:na]
        at com.amazonaws.auth.profile.ProfilesConfigFile.loadProfiles(ProfilesConfigFile.java:194) ~[aws-java-sdk-core-1.10.36.jar!/:na]
        at com.amazonaws.auth.profile.ProfilesConfigFile.<init>(ProfilesConfigFile.java:119) ~[aws-java-sdk-core-1.10.36.jar!/:na]
        at com.amazonaws.auth.profile.ProfilesConfigFile.<init>(ProfilesConfigFile.java:101) ~[aws-java-sdk-core-1.10.36.jar!/:na]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[na:1.8.0_65]
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[na:1.8.0_65]
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[na:1.8.0_65]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:422) ~[na:1.8.0_65]
        at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:147) ~[spring-beans-4.2.3.RELEASE.jar!/:4.2.3.RELEASE]
amazon-web-services spring-boot spring-cloud
1个回答
0
投票

即使这个问题来自很多年前,仍然在发生,并且很难找到正确的解决方案,所以,让我尝试帮助那些面临这个问题的人

AWS credential profiles file not found in the given path:
/path/to/some/app/default

问题,使用AWS + Spring Boot。

引发此错误的原因之一是应用程序正在寻找凭据配置文件

# the user home directory
~/.aws/credentials

从 CLI 登录 AWS 后(短期身份验证)。

AWS 库正在寻找

[default]
配置文件,但就我而言,凭证变量保存在一个非常不同的配置文件下(例如
[my-dev-profile]
)。有了这个,我尝试将 env 变量作为参数与保存的配置文件传递到 Spring Boot 应用程序没有任何区别,错误仍然存在。

在我确定凭据位于正确的位置后,在

[default]
文件中的
~/.aws/credentials
配置文件下,错误消失了,应用程序能够启动。

© www.soinside.com 2019 - 2024. All rights reserved.