IllegalArgumentException:需要 KinesisClient 中第 1 行的配置文件定义

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

我正在使用 Java 中的 AWS SDK 2.x 创建 KinesisClient 类的对象,如下所示

AwsCredentialsProvider credentialsProvider = StaticCredentialsProvider.create(
        AwsBasicCredentials.create("access-key",
            "secret-key")
    );
    KinesisClient kinesisClient  = KinesisClient.builder()
        .credentialsProvider(credentialsProvider)
        .build();

当我执行此代码时,出现以下异常

Exception in thread "main" java.lang.IllegalArgumentException: Expected a profile definition on line 1
    at software.amazon.awssdk.utils.Validate.isTrue(Validate.java:76)
    at software.amazon.awssdk.profiles.internal.ProfileFileReader.readPropertyDefinitionLine(ProfileFileReader.java:125)
    at software.amazon.awssdk.profiles.internal.ProfileFileReader.parseLine(ProfileFileReader.java:78)
    at software.amazon.awssdk.profiles.internal.ProfileFileReader.lambda$parseFile$0(ProfileFileReader.java:58)
    at java.util.Iterator.forEachRemaining(Iterator.java:116)
    at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
    at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:647)
    at software.amazon.awssdk.profiles.internal.ProfileFileReader.parseFile(ProfileFileReader.java:58)
    at software.amazon.awssdk.profiles.ProfileFile$BuilderImpl.build(ProfileFile.java:265)
    at software.amazon.awssdk.profiles.ProfileFile.lambda$addCredentialsFile$0(ProfileFile.java:142)
    at java.util.Optional.ifPresent(Optional.java:159)
    at software.amazon.awssdk.profiles.ProfileFile.addCredentialsFile(ProfileFile.java:139)
    at software.amazon.awssdk.utils.builder.SdkBuilder.applyMutation(SdkBuilder.java:61)
    at software.amazon.awssdk.profiles.ProfileFile.defaultProfileFile(ProfileFile.java:90)
    at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.mergeGlobalDefaults(SdkDefaultClientBuilder.java:196)
    at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.syncClientConfiguration(SdkDefaultClientBuilder.java:149)
    at software.amazon.awssdk.services.kinesis.DefaultKinesisClientBuilder.buildClient(DefaultKinesisClientBuilder.java:28)
    at software.amazon.awssdk.services.kinesis.DefaultKinesisClientBuilder.buildClient(DefaultKinesisClientBuilder.java:22)
    at software.amazon.awssdk.core.client.builder.SdkDefaultClientBuilder.build(SdkDefaultClientBuilder.java:124)

我是否缺少该配置文件的任何内容,或者有其他方法来创建客户端对象。 预先感谢!

java amazon-web-services amazon-kinesis amazon-kinesis-agent
2个回答
2
投票

无效的键值/字符可能会导致该异常。您能否检查一下

cat ~/.aws/credentials
cat ~/.aws/config
文件中是否存在无效字符或值。


0
投票

除了 Venkata 的答案之外,凭证文件的格式似乎很重要,并且错误可能不会使这一点变得明显。

例如,我发现这种格式不起作用(Mac OS 在 ~/.aws/credentails 中):

[default] 
aws_access_key_id=AKIARQV2GJHGK78 aws_secret_access_key=Op+kW9cXLL9dddtSNRuRccULcL5gt4VUx6ywOObN

虽然这种格式确实如此(即在单独的行上):

[default] 
aws_access_key_id=AKIARQV2GJHGK78
aws_secret_access_key=Op+kW9cXLL9dddtSNRuRccULcL5gt4VUx6ywOObN

(以上不是真正的钥匙!)

更多信息请参见:https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html

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