2015-11-05 13 views
11

Używanie Pythona w AWS Lambda, jak mogę umieścić/Pobierz element z tabeli Dynamodbjak umieścić element w AWS AWS Lambda DynamoDb korzystania z pytona

W node.js to byłoby coś podobnego

dynamodb.getItem({ 
      "Key": {"fruitName" : 'banana'}, 
      "TableName": "fruitSalad" 
      }, function(err, data) { 
       if (err) { 
        context.fail('Incorrect username or password'); 
       } else { 
        context.succeed('yay it works'); 
       } 
      }); 

All I need to pyton równoważne

Odpowiedz

14

Korzystanie Boto3 (Latest AWS SDK dla Pythona)

Get przykład pozycja

dynamodb.get_item(TableName=fruitSalad, Key={'fruitName':{'S':'Banana'}}) 

poz Put przykład

dynamodb.put_item(TableName=fruitSalad, Item={'fruitName':{'S':'Banana'},'key2':{'N':'value2'}) 

'S' wskazuje wartość String 'n' to wartość liczbowa

W przypadku innych typów danych odnoszących http://boto3.readthedocs.org/en/latest/reference/services/dynamodb.html#DynamoDB.Client.put_item

+3

jakiś pomysł jak konwertować rzeczywistą dict że byłoby użyć w Pythonie do szalonej struktury Amazona? –

+0

Dlaczego trzeba konwertować na format jon Dynamodb (amazon way) ze zwykłego json? – omuthu

+3

RyanTuck, jeśli używasz zasobu i tabeli, nie jest to konieczne i możesz użyć swojego dyktowania. dynamodb = boto3.resource ('dynamodb') table = dynamodb.Table (TableName) table.put_item ({"fruitName": "banana"}) –

6

pełny przykład:

import boto3 

def lambda_handler(event, context): 

    client = boto3.client('dynamodb') 

    for record in event['Records']: 
     # your logic here... 
     try: 
      client.update_item(TableName='dynamo_table_name', Key={'hash_key':{'N':'value'}}, AttributeUpdates={"some_key":{"Action":"PUT","Value":{"N":'value'}}}) 
     except Exception, e: 
      print (e) 

należy pamiętać, że należy zdecydować, kiedy należy użyć "update_item" lub "put_item".

z "update_item", który zapewnia, że ​​ma tylko jeden rekord z tym samym hashem/zakresem. czy rekord istnieje może aktualizować ten rekord, bo inaczej będzie go utworzyć

http://boto3.readthedocs.org/en/latest/reference/services/dynamodb.html#DynamoDB.Client.update_item

Powiązane problemy