【问题标题】:AWS Polly Java Client gives error: Unable to load region information from any provider in the chainAWS Polly Java 客户端给出错误:无法从链中的任何提供商加载区域信息
【发布时间】:2017-05-13 14:23:32
【问题描述】:

我正在使用 AWS 的 JAVA 开发工具包来创建 Polly 客户端。 像这样:

BasicAWSCredentials awsCreds = new BasicAWSCredentials("<IAM access Key>", "IAM secret key>");

    AmazonPollyClient apClient = (AmazonPollyClient) AmazonPollyClientBuilder.standard()
            .withCredentials(new AWSStaticCredentialsProvider(awsCreds))
            .build();


    SynthesizeSpeechRequest tssRequest = new SynthesizeSpeechRequest();
    tssRequest.setText(<text>);
    tssRequest.setVoiceId(<voiceid>);
    tssRequest.setOutputFormat(OutputFormat.Mp3);
    SynthesizeSpeechResult tssResult = apClient.synthesizeSpeech(tssRequest);

当我运行此代码时,我收到以下错误消息:

线程“主”com.amazonaws.SdkClientException 中的异常:无法 从链中的任何提供者加载区域信息 com.amazonaws.regions.AwsRegionProviderChain.getRegion(AwsRegionProviderChain.java:56) 在 com.amazonaws.client.builder.AwsClientBuilder.setRegion(AwsClientBuilder.java:319) 在 com.amazonaws.client.builder.AwsClientBuilder.configureMutableProperties(AwsClientBuilder.java:295) 在 com.amazonaws.client.builder.AwsSyncClientBuilder.build(AwsSyncClientBuilder.java:38) 在 com.eoffice.aws.speech.Polly.main(Polly.java:42)

我使用 IAM 策略模拟器检查了凭证。这工作正常,权限还可以。

在 ClientBuilder 中设置区域的方法对 AmazonPollyClientBuilder 不可见,因此我没有(Java SDK)方法来指定区域。

更新: 当我只询问 defaultAwsREgionProviderChain 时,我收到相同的错误消息

DefaultAwsRegionProviderChain defaultAwsRegionProviderChain = new DefaultAwsRegionProviderChain();
System.out.println(defaultAwsRegionProviderChain.getRegion());

更新 2: 当我在 de .aws 文件夹中创建具有以下内容的配置文件时:

[默认] 地区 = eu-west-1

它有效,但我需要一种方法来设置它而不依赖于文件系统。

【问题讨论】:

    标签: java amazon-web-services amazon-iam amazon-polly


    【解决方案1】:

    提供一个名为“AWS_REGION”的系统环境变量就可以了。 请参阅屏幕截图以了解 IBM Bluemix 中的配置

    【讨论】:

      【解决方案2】:

      我觉得你可以这样设置区域

      AmazonPollyClient apClient = (AmazonPollyClient) AmazonPollyClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(awsCreds)).withRegion("<aws-region>").build();
      

      【讨论】:

      • 或者更好 - 例如.withRegion(Region.US_WEST_1)
      猜你喜欢
      • 2021-08-08
      • 2017-06-15
      • 2023-03-11
      • 1970-01-01
      • 1970-01-01
      • 2017-10-24
      • 2016-08-04
      • 2021-08-11
      • 1970-01-01
      相关资源
      最近更新 更多