2017-06-21 56 views
0

我與DynamoDB非常新,我試圖創建boto3表,找到下面的代碼:本地主機端點到DynamoDB本地自認倒黴Boto3

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) 

運行此代碼後,我得到了「表狀態:主動「。我認爲這意味着Python代碼工作正常,表已創建。但是,我無法從localhost Endpoint或從控制檯看到此表。有什麼不對的嗎?任何人都可以給我一些解釋如何使用python與本地主機來創建表。

謝謝

回答

0

這是一個有點晚,但請檢查您是否沒有使用-inMemory代替-sharedDb

如果使用-sharedDb選項,DynamoDB創建一個單一的數據庫文件命名爲shared-local-instance.db。每個連接到DynamoDB的程序都會訪問此文件。如果刪除文件,則會丟失存儲在其中的任何數據。

如果使用-inMemory選項,DynamoDB根本不寫任何數據庫文件。而是將所有數據寫入內存,並且在終止DynamoDB時不會保存數據。

$ java -Djava.library.pathh=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb