Java AmazonClientException:无法从链中的任何提供程序加载凭据

Java AmazonClientException:无法从链中的任何提供程序加载凭据,java,mule,amazon-kinesis,anypoint-studio,cloudhub,Java,Mule,Amazon Kinesis,Anypoint Studio,Cloudhub,我的mule应用程序将json记录写入一个kinesis流。我使用KPL生产者库。在本地运行时,它从.AWS/credentials中拾取AWS凭据,并将记录成功写入kinesis 但是,当我将应用程序部署到Cloudhub时,它会抛出AmazonClientException,这显然是因为无法访问DefaultAWSCredentialsProviderChain类支持的任何目录。() 这是我附加凭据的方式,它在本地显示。aws/credentials: config.setCredentia

我的mule应用程序将json记录写入一个kinesis流。我使用KPL生产者库。在本地运行时,它从.AWS/credentials中拾取AWS凭据,并将记录成功写入kinesis

但是,当我将应用程序部署到Cloudhub时,它会抛出AmazonClientException,这显然是因为无法访问DefaultAWSCredentialsProviderChain类支持的任何目录。()

这是我附加凭据的方式,它在本地显示。aws/credentials:

config.setCredentialsProvider( new 
DefaultAWSCredentialsProviderChain());
我无法找到使用my-app.properies文件显式提供凭据的方法

然后,我尝试使用getter/setter创建一个单独的配置文件。将访问密钥和私钥设置为private,然后插入getter:

public AWSCredentialsProvider getCredentials() { 
    if(accessKey == null || secretKey == null) { 
        return new DefaultAWSCredentialsProviderChain(); 
    } 

    return new StaticCredentialsProvider(new BasicAWSCredentials(getAccessKey(), getSecretKey())); 
} 
}

这是用来代替DefaultAWSCredentialsProviderChain类的---

部署时仍会抛出相同的错误。 以下回购协议声明可以提供明确的凭证。因为找不到合适的文档/示例,我需要帮助了解如何使用。

我也面临同样的问题,因此,我得到了这个解决方案,我希望这也能对您起作用

@Value("${s3_accessKey}")
private String s3_accessKey;

@Value("${s3_secretKey}")
private String s3_secretKey;

//this above  value I am taking from Application.properties file

BasicAWSCredentials creds = new BasicAWSCredentials(s3_accessKey, 
s3_secretKey); 

AmazonS3 s3Client = AmazonS3ClientBuilder.standard().
withCredentials(new AWSStaticCredentialsProvider(creds))
    .withRegion(Regions.US_EAST_2)
    .build();

你查过属性FileCredentialsProvider了吗?我没有。正在尝试。下面是我是如何做到这一点的,如果我走错了方向,请纠正我。PropertiesFileCredentialsProvider localProperties=新的PropertiesFileCredentialsProvider(credPath);localProperties.getCredentials();config.setCredentialsProvider(localProperties);
@Value("${s3_accessKey}")
private String s3_accessKey;

@Value("${s3_secretKey}")
private String s3_secretKey;

//this above  value I am taking from Application.properties file

BasicAWSCredentials creds = new BasicAWSCredentials(s3_accessKey, 
s3_secretKey); 

AmazonS3 s3Client = AmazonS3ClientBuilder.standard().
withCredentials(new AWSStaticCredentialsProvider(creds))
    .withRegion(Regions.US_EAST_2)
    .build();