2017-01-12 12 views
6

में किसी भी प्रदाता से क्षेत्र की जानकारी लोड करने में असमर्थ मैं पोली क्लाइंट बनाने के लिए एडब्ल्यूएस से जावा एसडीके का उपयोग कर रहा हूं। इस तरह:एडब्ल्यूएस पोली जावा क्लाइंट त्रुटि देता है: श्रृंखला

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); 

मुझे इस कोड चलाने के लिए, मैं निम्नलिखित त्रुटि संदेश मिलता है:

Exception in thread "main" com.amazonaws.SdkClientException: Unable to load region information from any provider in the chain at com.amazonaws.regions.AwsRegionProviderChain.getRegion(AwsRegionProviderChain.java:56) at com.amazonaws.client.builder.AwsClientBuilder.setRegion(AwsClientBuilder.java:319) at com.amazonaws.client.builder.AwsClientBuilder.configureMutableProperties(AwsClientBuilder.java:295) at com.amazonaws.client.builder.AwsSyncClientBuilder.build(AwsSyncClientBuilder.java:38) at com.eoffice.aws.speech.Polly.main(Polly.java:42)

मैं IAM नीति सिम्युलेटर का उपयोग क्रेडेंशियल्स की जाँच की। यह ठीक काम करता है, अनुमतियां ठीक हैं।

क्लाइंटबिल्डर में क्षेत्र सेट करने की विधि AmazonPollyClientBuilder के लिए दृश्यमान नहीं है, इसलिए मेरे पास क्षेत्र निर्दिष्ट करने के लिए कोई (जावा एसडीके) तरीका नहीं है।

अद्यतन: जब मैं सिर्फ defaultAwsREgionProviderChain से पूछते हैं, मैं एक ही त्रुटि संदेश मिलता है

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

updat 2: जब मैं निम्नलिखित सामग्री के साथ डी .aws फ़ोल्डर में एक कॉन्फ़िग फ़ाइल बनानी :

[default] region = eu-west-1

यह काम करता है, लेकिन मैं फाइल सिस्टम पर निर्भर के बिना इस सेट करने के लिए एक तरह से की जरूरत है।

उत्तर

5

"एडब्ल्यूएस_REGION" नाम के साथ एक सिस्टम एनवायरनमेंट वैरिएबल प्रदान करना चाल था। विन्यास के लिए स्क्रीनशॉट देखें आईबीएम Bluemix में

enter image description here

3

मुझे लगता है कि आप इस

AmazonPollyClient apClient = (AmazonPollyClient) AmazonPollyClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(awsCreds)).withRegion("<aws-region>").build(); 
की तरह क्षेत्र सेट कर सकते हैं
संबंधित मुद्दे