web-dev-qa-db-fra.com

comment mettre un élément dans aws DynamoDb en utilisant aws Lambda avec python

Utilisation de python dans AWS Lambda, comment puis-je placer/obtenir un élément d'une table DynamoDB?

Dans Node.js, ce serait quelque chose comme:

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

Tout ce dont j'ai besoin, c'est l'équivalent python.

26
Jordan

Utilisation de Boto3 (Le dernier kit SDK AWS pour python)

Vous l'importez avec

import boto3

Puis appelez le client via

dynamodb = boto3.client('dynamodb')

Obtenir un exemple d'article

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

Exemple d'article mis

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

"S" indique une valeur de chaîne, "N" est une valeur numérique

Pour les autres types de données, voir http://boto3.readthedocs.org/en/latest/reference/services/dynamodb.html#DynamoDB.Client.put_item

35
omuthu

exemple complet:

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)

veuillez noter que vous devez décider quand utiliser 'update_item' ou 'put_item'.

avec 'update_item', vous vous assurez de n'avoir qu'un seul enregistrement avec le même hash/range. si l'enregistrement existe, il peut mettre à jour cet enregistrement, sinon il le créera

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

14
Eyal Ch

Utilisation du dernier kit de développement logiciel AWS

import boto3

def lambda_handler(event, context):
    # this will create dynamodb resource object and
    # here dynamodb is resource name
    client = boto3.resource('dynamodb')

    # this will search for dynamoDB table 
    # your table name may be different
    table = client.Table("dynamoDB")
    print(table.table_status)

    table.put_item(Item= {'id': '34','company':  'Microsoft'})

Si vous utilisez AWS, vous pouvez utiliser cet exemple de code, vous êtes le seul à devoir donner des autorisations pour cette fonction lambda. Vous pouvez trouver des détails dans lien

8
sudhanshu allurwar