web-dev-qa-db-ja.com

AWS Polly Javaクライアントがエラーを出します:チェーン内のどのプロバイダーからもリージョン情報を読み込めません

AWSのJava SDKを使用して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.client.builder.AwsClientBuilderのcom.amazonaws.regions.AwsRegionProviderChain.getRegion(AwsRegionProviderChain.Java:56)のチェーン内のプロバイダーからリージョン情報を読み込めません.setRegion(AwsClientBuilder.Java:319)at com.amazonaws.client.builder.AwsClientBuilder.configureMutableProperties(AwsClientBuilder.Java:295)at com.amazonaws.client.builder.AwsSyncClientBuilder.build(AwsSyncClientBuilder.Java:38)atcom。 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フォルダーに次のコンテンツを含む設定ファイルを作成すると、次のようになります。

[デフォルト] region = eu-west-1

それは機能しますが、ファイルシステムに依存せずにこれを設定する方法が必要です。

8
mpjjonker

「AWS_REGION」という名前のシステム環境変数を提供することでうまくいきました。 IBM Bluemixでの構成については、スクリーンショットを参照してください

enter image description here

8
mpjjonker

このように地域を設定できると思います

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