首页 > 解决方案 > 运行测试时 EnvironmentVariableCredentialsProvider 不在提供程序中

问题描述

我有使用 AWS Kinesis 和 DynamoDB 的 Spring Boot 应用程序。当我运行应用程序时,我可以看到 AWSCredentialsProviderChain 提供了 EnvironmentVariableCredentialsProvider 以从环境变量中读取AWS_ACCESS_KEY_IDAWS_ACCESS_KEY 。

但是当我运行集成测试时,EnvironmentVariableCredentialsProvider不在 AWSCredentialsProvider(s) 中。这是我的基本测试类配置:

@ActiveProfiles("integration")
@SpringBootTest
class BaseTest {

}

@SpringBootTest 将 @SpringBootApplication 作为主要配置类,我假设两者都应该具有相同的配置上下文。

我感谢您的帮助。

谢谢

标签: amazon-web-servicesamazon-dynamodbspring-integration-aws

解决方案


好吧,在我的测试中,我使用 spring-cloud-stream-binder-kinesis 来产生事件。当我删除它并用弹簧集成生产者替换它时,问题解决了。

将用于 kinesis 的 spring cloud binder 和 spring 集成结合在一起非常棘手,对我来说几乎没有问题。在您的应用程序中同时使用这两种方法时要小心。


推荐阅读