2017-12-04 11 views
0

一般的な問題既存のAmazon DynamoDBテーブルへのアクセス方法を教えてください。

私は、AndroidアプリケーションからアマゾンDynamoDBの作成とアクセスに関するthis tutorialを踏襲して、私が書いているアプリでの使用のためにそれを適応しています。それは私が直面している問題にもかかわらず素晴らしい作品です。しかし、私は自分のRaspberry Piで動作するpythonスクリプトを使ってデータベースにアクセスしたいと思っています。

this tutorialが見つかりましたが、ローカルのDynamoDBテーブルとやりとりする方法だけを説明しているようです。

特定の問題

次のコードは、接続してDynamoDBのテーブルに項目を書き込みます。 Amazon DynamoDBのエンドポイントURL、ARNのみを見つけることができず、アプリケーションで使用しているときにパスワードやユーザー名が渡されることはありません。

# Helper class to convert a DynamoDB item to JSON. 
class DecimalEncoder(json.JSONEncoder): 
    def default(self, o): 
     if isinstance(o, decimal.Decimal): 
      if o % 1 > 0: 
       return float(o) 
      else: 
       return int(o) 
     return super(DecimalEncoder, self).default(o)  

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

table = dynamodb.Table('Movies')  

title = "The Big New Movie" 
year = 2015  

response = table.put_item(
    Item={ 
     'year': year, 
     'title': title, 
     'info': { 
      'plot':"Nothing happens at all.", 
      'rating': decimal.Decimal(0) 
     } 
    } 
) 

私は、Amazon DynamoDBのインスタンスに接続するための命令の任意の並べ替えで検索しましたが、私が見つけたすべてのものは、ローカルテーブルを説明しています。誰かが特定の問題に関するアドバイスをしたり、その旨のチュートリアルを勧めたりすることができれば、私は非常に感謝しています。

答えて

1

変更

dynamodb = boto3.resource('dynamodb',endpoint_url="http://localhost:8000") 

REGIONは、このような '米国西部-2' など、あなたのDynamoDBの領域の名前です
dynamodb = boto3.resource('dynamodb',region_name='REGION') 

へ。その後、AWS DynamoDBインスタンスに接続します。

EDIT:まだ編集していない場合は、AWS Credentialsを設定する必要があります。これにはいくつかのオプションがあります。

AWS_ACCESS_KEY_ID AWSアカウントのアクセスキー:1つのオプションは、環境変数

Boto3は、資格証明書のためにこれらの環境変数をチェックしますを使用することです。

AWS_SECRET_ACCESS_KEY AWSアカウントの秘密鍵。

関連する問題