0

無法在AWS Dynamodb上運行示例代碼。AWS DynamoDB Python連接錯誤

我想運行他們在那裏提供的AWS示例python代碼網站。這裏是我的Python文件:

from __future__ import print_function # Python 2/3 compatibility 
    import boto3 

    dynamodb = boto3.resource('dynamodb', region_name='us-west-2', endpoint_url="http://localhost:8000") 


    table = dynamodb.create_table(
     TableName='Movies', 
     KeySchema=[ 
      { 
       'AttributeName': 'year', 
       'KeyType': 'HASH' #Partition key 
      }, 
      { 
       'AttributeName': 'title', 
       'KeyType': 'RANGE' #Sort key 
      } 
     ], 
     AttributeDefinitions=[ 
      { 
       'AttributeName': 'year', 
       'AttributeType': 'N' 
      }, 
      { 
       'AttributeName': 'title', 
       'AttributeType': 'S' 
      }, 

     ], 
     ProvisionedThroughput={ 
      'ReadCapacityUnits': 10, 
      'WriteCapacityUnits': 10 
     } 
    ) 

    print("Table status:", table.table_status) 

我然後我運行終端蟒蛇文件,我得到以下錯誤:

File "MoviesCreateTable.py", line 32, in <module> 
    'WriteCapacityUnits': 10 
File "/home/name/.local/lib/python2.7/site-packages/boto3/resources/factory.py", line 520, in do_action 
    response = action(self, *args, **kwargs) 
File "/home/name/.local/lib/python2.7/site-packages/boto3/resources/action.py", line 83, in __call__ 
    response = getattr(parent.meta.client, operation_name)(**params) 
File "/home/name/.local/lib/python2.7/site-packages/botocore/client.py", line 159, in _api_call 
    return self._make_api_call(operation_name, kwargs) 
File "/home/name/.local/lib/python2.7/site-packages/botocore/client.py", line 483, in _make_api_call 
    operation_model, request_dict) 
File "/home/name/.local/lib/python2.7/site-packages/botocore/endpoint.py", line 141, in make_request 
    return self._send_request(request_dict, operation_model) 
File "/home/name/.local/lib/python2.7/site-packages/botocore/endpoint.py", line 170, in _send_request 
    success_response, exception): 
File "/home/name/.local/lib/python2.7/site-packages/botocore/endpoint.py", line 249, in _needs_retry 
    caught_exception=caught_exception, request_dict=request_dict) 
File "/home/name/.local/lib/python2.7/site-packages/botocore/hooks.py", line 227, in emit 
    return self._emit(event_name, kwargs) 
File "/home/name/.local/lib/python2.7/site-packages/botocore/hooks.py", line 210, in _emit 
    response = handler(**kwargs) 
File "/home/name/.local/lib/python2.7/site-packages/botocore/retryhandler.py", line 183, in __call__ 
    if self._checker(attempts, response, caught_exception): 
File "/home/name/.local/lib/python2.7/site-packages/botocore/retryhandler.py", line 251, in __call__ 
    caught_exception) 
File "/home/name/.local/lib/python2.7/site-packages/botocore/retryhandler.py", line 277, in _should_retry 
    return self._checker(attempt_number, response, caught_exception) 
File "/home/name/.local/lib/python2.7/site-packages/botocore/retryhandler.py", line 317, in __call__ 
    caught_exception) 
File "/home/name/.local/lib/python2.7/site-packages/botocore/retryhandler.py", line 223, in __call__ 
    attempt_number, caught_exception) 
File "/home/name/.local/lib/python2.7/site-packages/botocore/retryhandler.py", line 359, in _check_caught_exception 
    raise caught_exception 
botocore.vendored.requests.exceptions.ConnectionError: ('Connection aborted.', error(111, 'Connection refused')) 

回答

5

這發生在Dynamodb沒有運行。檢查localhost:8000/shell以驗證它正在運行。

確保文檔中給出的所有prerequisites都滿足。

Before you begin this tutorial, you need to do the following:

  • Download and run DynamoDB on your computer. For more information, see Download and Run DynamoDB .
  • Sign up for Amazon Web Services and create access keys. You need these credentials to use AWS SDKs. To create an AWS account, go to http://aws.amazon.com/ , choose Create an AWS Account, and then follow the online instructions.
  • Create an AWS credentials file. For more information, see Configuration in the Boto 3 documentation.
  • Install Python 2.6 or later. For more information, see https://www.python.org/downloads .
+1

謝謝,這工作。我如何在AWS上創建表而不是本地計算機? – jacob

+0

@acsrujan也想知道如何連接aws dynamodb,如何設置'endpoint_url' – Mil0R3