2017-02-08 9 views
5

पहली बार मैं एडब्ल्यूएस सेवाओं की कोशिश कर रहा हूं। मुझे पाठ के लिए पाठ के लिए तारांकन के साथ एडब्ल्यूएस पोली को एकीकृत करना है।पायदान में एडब्ल्यूएस पोली नमूना उदाहरण?

यहाँ उदाहरण कोड मैं भाषण

from boto3 import client 
import boto3 
import StringIO 
from contextlib import closing 

polly = client("polly", 'us-east-1') 
response = polly.synthesize_speech(
    Text="Good Morning. My Name is Rajesh. I am Testing Polly AWS Service For Voice Application.", 
    OutputFormat="mp3", 
    VoiceId="Raveena") 

print(response) 

if "AudioStream" in response: 
    with closing(response["AudioStream"]) as stream: 
     data = stream.read() 
     fo = open("pollytest.mp3", "w+") 
     fo.write(data) 
     fo.close() 

मैं त्रुटि निम्न हो रही है के लिए पाठ परिवर्तित करने के लिए लिखा है।

Traceback (most recent call last): 
    File "pollytest.py", line 11, in <module> 
    VoiceId="Raveena") 
    File "/usr/local/lib/python2.7/dist-packages/botocore/client.py", line 253, in _api_call 
    return self._make_api_call(operation_name, kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/botocore/client.py", line 530, in _make_api_call 
    operation_model, request_dict) 
    File "/usr/local/lib/python2.7/dist-packages/botocore/endpoint.py", line 141, in make_request 
    return self._send_request(request_dict, operation_model) 
    File "/usr/local/lib/python2.7/dist-packages/botocore/endpoint.py", line 166, in _send_request 
    request = self.create_request(request_dict, operation_model) 
    File "/usr/local/lib/python2.7/dist-packages/botocore/endpoint.py", line 150, in create_request 
    operation_name=operation_model.name) 
    File "/usr/local/lib/python2.7/dist-packages/botocore/hooks.py", line 227, in emit 
    return self._emit(event_name, kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/botocore/hooks.py", line 210, in _emit 
    response = handler(**kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/botocore/signers.py", line 90, in handler 
    return self.sign(operation_name, request) 
    File "/usr/local/lib/python2.7/dist-packages/botocore/signers.py", line 147, in sign 
    auth.add_auth(request) 
    File "/usr/local/lib/python2.7/dist-packages/botocore/auth.py", line 316, in add_auth 
    raise NoCredentialsError 
botocore.exceptions.NoCredentialsError: Unable to locate credentials 

मैं इस स्क्रिप्ट में सीधे प्रमाण-पत्र प्रदान करना चाहता हूं ताकि मैं इसे तारांकन प्रणाली अनुप्रयोग में उपयोग कर सकूं।

अद्यतन: मेरे वर्तमान लॉगिन उपयोगकर्ता अपने ठीक काम कर रहा के लिए सामग्री

नीचे
[default] 
aws_access_key_id=XXXXXXXX 
aws_secret_access_key=YYYYYYYYYYY 

अब के साथ एक फ़ाइल ~/.aws/साख बनाई है, लेकिन यह काम नहीं कर रहा तारांकन पीबीएक्स के लिए।

उत्तर

2

आपका कोड मेरे लिए पूरी तरह से ठीक है!

अंतिम पंक्ति कह रहा है:

botocore.exceptions.NoCredentialsError: Unable to locate credentials 

इसलिए, यह एडब्ल्यूएस के खिलाफ प्रमाणित करने में असमर्थ है।

आप एक अमेज़न EC2 उदाहरण पर इस कोड को चला रहे हैं, सरल विधि (बाद में इसे जोड़ा नहीं जा सकता) जब यह शुरू की है उदाहरण के लिए एक IAM भूमिका आवंटित करने के लिए है। यह स्वचालित रूप से प्रमाण-पत्र असाइन करेगा जिसका उपयोग उदाहरण पर चल रहे एप्लिकेशन द्वारा किया जा सकता है - कोई कोड परिवर्तन आवश्यक नहीं है।

वैकल्पिक रूप से, आप अपने आईएएम उपयोगकर्ता के लिए आईएएम से एक्सेस कुंजी और गुप्त कुंजी प्राप्त कर सकते हैं और उन प्रमाणपत्रों को स्थानीय फ़ाइल में aws configure कमांड के माध्यम से संग्रहीत कर सकते हैं।

यह बुरा व्यवहार स्रोत कोड में साख डाल करने के लिए है, क्योंकि उनके साथ छेड़छाड़ की हो सकता है।

देखें:

+0

मैंने ~/.aws/credentials फ़ाइल बनाई है और डिफ़ॉल्ट अनुभाग में प्रमाण पत्र प्रदान किया है। अब यह मेरे उपयोगकर्ता के लिए काम कर रहा है। लेकिन तारांकन पीबीएक्स के लिए यह त्रुटि दे रहा है। – rajesh6115

+0

आपका क्या मतलब है "लेकिन तारांकन के लिए पीबीएक्स यह त्रुटि दे रहा है"? क्या पीबीएक्स एक अलग उपयोगकर्ता खाते के तहत चलाता है। उस मामले में, उस उपयोगकर्ता के घर निर्देशिका में साख फ़ाइल भी पैदा करते हैं। सबसे खराब स्थिति आप कोड में साख डाल सकते हैं (का उपयोग 'aws_access_key_id = ACCESS_KEY, aws_secret_access_key = SECRET_KEY' जब' ग्राहक() 'बनाने), लेकिन यह एक बहुत ही असुरक्षित विधि है। अजगर में –

+0

धन्यवाद उपयोगकर्ता मैं विन्यास फाइल और config फाइल में रखा साख। तारांकन पीबीएक्स के साथ भी सफलतापूर्वक एकीकृत किया गया। – rajesh6115

0

कृपया ध्यान दें, तारांकन पीबीएक्स आमतौर पर उपयोगकर्ता तारांकन के तहत चलाए।

तो आपने उस उपयोगकर्ता के लिए प्रमाणीकरण रखा है, रूट नहीं।

संबंधित मुद्दे