Обработка запросов на удаление с помощью DynamoDB и Lambda API - PullRequest
0 голосов
/ 16 января 2019

Я пытаюсь удалить несколько элементов из моей базы данных DynamoDB, используя лямбда (Serverless Framework) API. Я много раз просматривал код, но не могу понять, как передать несколько элементов в API для удаления.

@app.route("/deletefromdb", methods=['GET', 'POST'])
def delete():
    payload = {'id': 'id_content'}
    urlShopItemsDelete = 'https://api.us-east-1.amazonaws.com/dev/todos/'
    headers = {'content-type': 'application/json'}
    res = requests.delete(
        url=urlShopItemsDelete, data=json.dumps(payload), headers=headers, timeout=15, verify=True)
    return jsonify({"success": True}), 202

API-код ...

import os
import json
import boto3
dynamodb = boto3.resource('dynamodb')


def delete(event, context):
    table = dynamodb.Table(os.environ['DYNAMODB_TABLE'])
    data = json.loads(event['body'])
    table.delete_item(
        Key={
            'id': data['id']
        }
    )

    response = {
        "statusCode": 200
    }

    return response

Я ожидаю, что элемент будет удален по идентификатору, а затем API вернет 200 успешных ответов ...

1 Ответ

0 голосов
/ 16 января 2019

Строго говоря, вы не можете удалить несколько элементов одновременно.

Чтобы удалить элемент, необходимо указать имя таблицы и первичный ключ элемента. Но вы можете выполнить несколько запросов на удаление в пакетном режиме

https://docs.aws.amazon.com/en_us/amazondynamodb/latest/APIReference/API_BatchWriteItem.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...